『壹』 es6語法是什麼
ECMAScript 6(以下簡稱ES6)是JavaScript語言的下一代標准。因為當前版本的ES6是在2015年發布的,所以又稱ECMAScript 2015。也就是說,ES6就是ES2015。雖然目前並不是所有瀏覽器都能兼容ES6全部特性,但越來越多的程序員在實際項目當中已經開始使用ES6了。
最常用的ES6特性
let, const, class, extends, super, arrow functions, template string, destructuring, default, rest arguments。
這些是ES6最常用的幾個語法,基本上學會它們,我們就可以走遍天下都不怕啦!我會用最通俗易懂的語言和例子來講解它們,保證一看就懂,一學就會。
let, const
這兩個的用途與var類似,都是用來聲明變數的,但在實際運用中他倆都有各自的特殊用途。
首先來看下面這個例子:
var name = 'zach'while (true) { var name = 'obama'
console.log(name) //obamabreak}console.log(name) //obama
使用var 兩次輸出都是obama,這是因為ES5隻有全局作用域和函數作用域,沒有塊級作用域,這帶來很多不合理的場景。第一種場景就是你現在看到的內層變數覆蓋外層變數。而let則實際上為JavaScript新增了塊級作用域。用它所聲明的變數,只在let命令所在的代碼塊內有效。
『貳』 var、let、const三者之間的區別和聯系有哪些
var 是es5之前當然之後也可以這么寫的寫法!
es5之後又細分出了let(變數)const(常量)這兩種類型。
但是const的出現也表示js腳本開始走向類如java,c#那種重型語言的編寫方式,明確細分了常量和變數。
然後let對比var都是變數(var沒有變數常量一說,但ES5之後其行為與let類似),但是,var和let有很大區別,簡單理解就是作用域變了,如果你學過後端語言的話,你會知道,使用變數需要先聲明在賦值後使用的流程,let繼承了這種流程,而var沒有,在代碼里的體現就是,let只在定義它的上一個大括弧內及其所有子方法體起作用,比如方法中定義let則出了這個方法就沒法使用到這個let,同級別的兩個方法,可以各自定義一個同名let變數。
其實說起來,你可能沒有感覺,因為你用var的時候可能也是這么用的,但是let是被嚴格約束可以這么用,而var其實是無約束的,在某些時候是亂竄。也就是你看到的是你想看的,但它裡面的運行不是你所想的!簡單來說,var的作用域是混亂的,同父子作用域下var可以被多次定義。而let不能!
const也是繼承了後端的常量思想,一旦定義,無法被修改,也不能被修改,也不應該被修改,如果你想改變以上3條中的任何一條,都不要使用const!所以const一般用於存儲固定不變的內容,比如系統信息里的名字啊,系統風格啊,審批號啊之類的,不是不能變,而是應該通過人為干預手寫的方式來改變其值,不能不應通過代碼的方式來賦值(初值除外)!