es6新特性 ES6新特性(一)

2021-10-12 04:06:39 字數 1375 閱讀 9886

var

1:var宣告的是函式作用域(區域性),但在if  for等定義的變數是全域性的

2:var 具有變數提公升,預解析

3:在同乙個作用域下,var可以宣告多次

4:var 宣告的變數會掛載到window上

let1:let不存在變數提公升,在變數使用之前,必須要先宣告

2:let在同一作用域下,不能重名--可以避免全域性變數被汙染

3:在for迴圈時,不會洩露到全域性作用域(函式之外,for迴圈塊作用域)

4:let宣告的全域性變數,不會掛載到window上

5:let有暫時性死區,所以必須先定義後使用

const

1:用於宣告常量,後期在整個程式執行期間不可修改(除了物件陣列)

2:需要立即初始化,不能到後面賦值

3:也是在塊級作用域中才有效

4:不存在常量提公升 

箭頭函式的新特性:

arr(1,2,3,4,5)

箭頭函式不能使用的場景:

1:物件中的方法不能使用箭頭函式

2:給dom繫結的事件不能使用箭頭函式

引數的處理

1:引數預設值---直接寫在引數定義的後面

function(a,b=12)簡寫形式:和上面的效果一樣let obj = 方法簡寫---只要是將:function可以省略 當 key  對應 value 是乙個函式 , 可以省略 :function (方法簡寫)let obj = }方法簡寫形式:和上面的效果一樣let obj = }

直接使用symbol()建立新的symbol型別,並用乙個可選的字串作為其描述。

var sym1 = symbol();

var sym2 = symbol('foo');

var sym3 = symbol('foo');

上面的**建立了三個新的symbol型別。注意,symbol("foo")不會強制將字串 「foo」 轉換成symbol型別。它每次都會建立乙個新的 symbol型別:

symbol("foo") === symbol("foo"); // false
下面帶有new運算子的語法將丟擲typeerror錯誤:

var sym = new symbol(); // typeerror
拷貝乙個功能一樣的函式(內部this已經改變),但是這個函式沒有執行,需要手動呼叫一次

ES6新特性須知

1.1es5之前函式想要賦預設值var funes5 function a,b,c 1.2es6開始函式想要賦預設值var funes6 function a 50,b 60,c 70 2.1es5之前字串拼接或者拼接屬性值只能如下var a lbj var b 50 var c name a ye...

es6新特性分享

1 字串查詢 es5使用是indexof 返回字元第一次出現的位置int值 es6新增了3個方法 includes startswith endwith 返回bool值 includes 是否包含字元 startswith 首字母是否包含字元 endwith 末尾是否包含字元 2 數值擴充套件 nu...

es6新特性來襲

在es6之前,我們都是用var關鍵字宣告變數。無論宣告在何處,都會被視為宣告在函式的最頂部 不在函式內即在全域性作用域的最頂部 這就是函式變數提公升例如 function aa else 以上的 實際上是 function aa else 此處訪問test 值為undefined 所以不用關心boo...