ES6优缺点
看了一篇ES6語法示例,覺得還可以
here
ES6是新一版的標準,對語言有擴展,添加了新的屬性與方法。這一標準雖然現在還要用babel來做瀏覽器支持(將ES6編譯成ES5才能被瀏覽器支持),但是未來瀏覽器會逐漸對其有原生的支持。到時候JS語法會發生更新,我們可以使用更簡單的方式編寫代碼,使得編程更容易。
語法糖:糖衣語法,并不改變語言的功能,只是使編程更簡單。比如C語言里用a[i]表示*(a+i)
ES6就是用了較多語法糖,這也就意味著,ES6的一些新特性并不是真的“新”,只是試圖簡化語法而已。
下面是ES6的一些新特性/優點:
1、類的封裝
class Project {constructor(name) { //構造方法this.name = name;}start() { //成員方法,可以不用function聲明return "Project " + this.name + " starting";} }var project = new Project("Journal"); project.start(); // "Project Journal starting"這個類中定義的所有方法都被加入這個類的原型prototype中
2、繼承
現有的JS語法中,繼承是通過prototype實現的
ES6中:
class WebProject extends Project {constructor(name, technologies) {super(name);this.technologies = technologies;}info() {return this.name + " uses " + arrayToString(this.technology);} }function arrayToString(param) {// ... some implementation }var webJournal = new WebProject("FrontEnd Journal", "javascript"); webJournal.start(); // "FrontEnd Journal starting" webJournal.info(); // "FrontEnd Journal uses javascript"3、模塊化module
在js中,為了實現模塊化編程,可以使用插件工具seajs等,seajs符合CMD規范,CMD規范是在commonJS(服務端模塊化規范)基礎上的
ES6中:
// point.js module "point" {export class Point {constructor (x, y) {public x = x;public y = y;}} }// myapp.js //聲明引用的模塊 module point from "/point.js"; //這里可以看出,盡管聲明了引用的模塊,還是可以通過指定需要的部分進行導入 import Point from "point";var origin = new Point(0, 0); console.log(origin);4、let和const
for (let i=0;i<2;i++)console.log(i);//輸出: 0,1 console.log(i);//輸出:undefined,嚴格模式下會報錯?
用let聲明的變量只在代碼塊中可見
var是 函數作用域,而let是 塊級作用域
?
const是創建常量,一旦被創建,值就不可改變
?
還有一些其他特性
一篇很好的ES6介紹
?
很多人說ES6很好用,都會覺得“早這樣該多好”
它的缺點就是 瀏覽器還沒有完全支持
轉載于:https://www.cnblogs.com/dll-ft/p/5813684.html
總結
- 上一篇: svn update -r m path
- 下一篇: 支持向量机libsvm实战入门