1、let所宣告的變數只在let命令所在的**塊內有效。(塊級作用域)
非常適合在迴圈中使用
var a =
;for
(let i =
0; i <
10; i++);
}a[6]
();// 6
2、let命令不存在變數提公升 它所宣告的變數一定要在宣告後使用,否則報錯。
3、let宣告變數存在暫時性死區
全域性變數tmp,但是塊級作用域內let又宣告了乙個區域性變數tmp,導致後者繫結這個塊級作用域,所以在let宣告變數前,對tmp賦值會報錯
在**塊內,使用let命令宣告變數之前,該變數都是不可用的
一旦宣告,常量的值就不能改變。const宣告的變數不得改變值,這意味著,const一旦宣告變數,就必須立即初始化,不能留到以後賦值。
constpi=
3.1415;pi
// 3.1415pi=
3;// 報錯
const foo;
// 報錯
只在宣告所在的塊級作用域內有效。
支援變數提公升
接使用沒有宣告的變數,let直接報錯,var的提示未定義:undefined
console.
log(vartest)
;//輸出undefined(注意要注釋掉下面一行才能執行)
console.
log(lettest)
;//直接報錯:referenceerror: lettest is not defined
var vartest;
let lettest;
console.
log(vartest)
;//輸出undefined
console.
log(lettest)
;//輸出undefined
//重複宣告同乙個變數的時候,不同
var vartest =
'test var ok.'
;let lettest =
'test let ok.'
;var vartest =
'vartest changed.'
;let lettest =
'lettest changed.'
;//直接報錯:syntaxerror: identifier 'lettest' has already been declared
console.
log(vartest)
;//輸出vartest changed.(注意要注釋掉上面lettest變數的重複宣告才能執行)
console.
log(lettest)
;//變數作用域不同
console.
log(vartest)
;//輸出"vartest changed.",內部"{}"中宣告的vartest變數覆蓋外部的lettest宣告,覆蓋
console.
log(lettest)
;//輸出"test let ok.",內部"{}"中宣告的lettest和外部的lettest不是同乙個變數,let塊級作用域
}
ES6快速入門
三種語法實現同乙個功能,從而加深對三種語法的運用,最後了解es6的優勢 知識點 常量 作用域 箭頭函式 預設 物件 es5 中常量的寫法 object.defineproperty window,pi2 console.log window.pi2 es6 的常量寫法 const pi 3.1415...
es6入門筆記
常量constconst a 1 a 2 console.log a 報錯 vm6833 2 uncaught typeerror assignment to constant variable.常量唯讀,不可以更改列表專案 es5 es6作用域舉個栗子 es5 function arr 0 4,i...
ES6快速入門
引數配置 promise物件 const 宣告的常量不可改變,宣告時必須初始化 const pi 3.1415926 console.log pi 使用const定義的陣列和物件,其值是可變的,但是不能對其進行重新賦值 const a a 0 1 console.log a 0 輸出1 const ...