console.log(b)//uncaught referenceerror: a is
not defined
在for迴圈中,迴圈語句部分是乙個作用域,內部又是乙個作用域
for(let a=1;a<3;a++)
在let宣告變數完成前,對變數賦值會出錯
es中模仿塊級作用域
(function
()())
(function
())()
es6中
function
f1()
console.log(n); // 5
}
// 情況一
if (true)
}// 情況二
try
} catch(e)
這兩種情況都是不好的,該用函式表示式
// 瀏覽器的 es6 環境
function
f()
(function
() //提公升
} f();
}());
// uncaught typeerror: f is not a function
const變數一旦宣告就該初始化否則出錯
const foo;
//syntaxerror: missing initializer in
const declaration
const和let命令一樣在塊級作用域內有效,不存在變數提公升
const保證變數在記憶體中的位置不變,所以陣列物件都可以改變其中的值,但不能重新賦值
在瀏覽器中指的window,在node中為global
在es5中全域性變數和頂層物件的屬性是等價的
var a = 1;
// 如果在node的repl環境,可以寫成global.a
// 或者採用通用方法,寫成this.a
window.a //
1let b = 1;
window.b //
undefined
ES6學習筆記 let和const
今天開始讀阮一峰的 ecmascript 6 入門 在這裡記錄下閱讀過程中的要點,以便隨時查閱。頂層物件的屬性與全域性變數掛鉤,被認為是js最大的敗筆之一,es6開始,全域性變數將逐步與頂層物件脫鉤。為了保持相容性,一方面,var和function宣告的全域性變數,依舊是頂層物件的屬性 另一方面,l...
ES6 學習筆記 let和const
學習資料 ecmascript 6 入門 如果使用var,只有乙個全域性變數i var a for var i 0 i 10 i a 6 10var a for let i 0 i 10 i a 6 6設定迴圈變數的那部分是乙個父作用域,而迴圈體內部是乙個單獨的子作用域 for let i 0 i ...
ES6學習筆記之《let 和 const》
es6宣告變數的方法 var function let const import class let和 const const的作用域與let命令相同 只在宣告所在的塊級作用域內有效。if true max uncaught referenceerror max is not defined con...