ES6部分特性小結

2021-09-13 10:09:27 字數 969 閱讀 3759

es6之前宣告變數只能用var,var的特點是無論宣告在何處,都會被視為宣告在函式的最頂部(不在函式內即在全域性作用域的最頂部)

function test()else

console.log(name); //此處訪問值為undefined

}

可以看到雖然列印結果是undefined,但是並沒有報錯。那是因為被js編譯過結果就變成了

function test()else

console.log(name); //此處訪問值為undefined

}

再來看es6新增的let,const。它們的作用域只在乙個函式內部或者乙個**塊內部。

function test()  else 

}

const作用域和let一樣。但是他通常被用於定義常量。就是它的值被設定完成後就不能再修改了。

const name = 'lux'

name = 'joe' // 再次賦值此時會報錯

但是,如果 const 的是乙個物件,物件所包含的值是可以被修改的。抽象一點兒說,就是物件所指向的位址不能改變,而變數成員是可以修改的。

const student = 

// 可以成功

student.name = 'yy';

// 如果這樣子就會報錯了

student = ;

還有tdz(暫時性死區)

我們都知道,js引擎掃瞄**時,如果發現變數宣告,用 var 宣告變數時會將宣告提公升到函式或全域性作用域的頂部。但是 let 或者 const,會將宣告關進乙個小黑屋也是tdz(暫時性死區),只有執行到變數宣告這句語句時,變數才會從小黑屋被放出來,才能安全使用這個變數。

本文基本是參考原文說的更仔細,有更多的內容。

ES6部分新特性總結

1.不存在變數提公升 使用var宣告 console.log a undefined var a 1 使用let宣告 console.log b let b 2 報錯 2.只在當前作用域有效 for var i 0 i 4 i i 4 for let n 0 n 4 n n 報錯 3.暫時性死區 如...

ES6部分語法

1 當物件的key和value名稱一致時,可以縮寫成乙個。components 等同於 components 2 data 等同於data function data 等同於 data function 3 是箭頭函式 render function h 也等同於 render h 4 在es6語法...

ES6部分知識點總結

注 本文通過yck前端面試小冊學習整理而得,記錄下來供自己查閱 1.var 變數提公升 使用var宣告的變數,宣告會被提公升到作用域的頂部 舉幾個例子 eg1 console.log a undefined var a 1 可以看做這樣 var aconsole.log a a 1 eg2 var ...