var和let比較
1. let沒有預解析,不存在變數提公升。
在**塊中,只要let定義變數,在之前使用,都是報錯。
先定義完再使用。
1 let a = 12;2function
fn()
6 fn();//
uncaught referenceerror: a is not defined
2. let在相同作用域內,不能重複定義變數
1let a;
2let a;3//
identifier 'a' has already been declared4//
a已經被定義
在相同的作用域內:下面 a = 12 和 a = 5 不再同一塊級作用域內。
16console.log(a);//12
7 }
3. let在for迴圈,for迴圈裡面是父級作用域,裡面迴圈體是子集作用域
for(let i = 0; i < 10; i++)
//執行了10次abcd。
let 和 var 的區別
1 作用域只侷限於當前 塊 if true console.log str console.log str1 str1 is not defined2 let宣告的作用於不會被提公升 console.log str var str 1 console.log str1 str1 is not def...
var和let的區別
在es6中新增了let命令,用來宣告變數。它的用法類似於var,但是所宣告的變數,只在let命令所在的 塊內有效。let let所在的區域會形成塊級作用域 let不存在變數提公升的情況 let會形成暫時性的死區 不可以在同一作用域下重複宣告變數 var 在es6之前 都是用var 宣告變數,只有函式...
var 和 let 的區別
var 和 let 都是存在 函式作用域以及全域性作用域的 但是 let 多了乙個 塊級作用域 而 var 則可以對同乙個變數重複多次定義,每次定義取最新值 函式作用域 指的是,在函式裡面定義的變數只能在函式裡面使用,出了函式外面就undefined 全域性作用域 指的是,在全域性範圍下定義 不在函...