一、let不能在js中使用,是es6的語法,需要在js中使用就必須使用嚴格模式:'use strict';
二、宣告後未賦值,表現相同
var vartest;
let lettest;
console.log(vartest); //輸出undefined
console.log(lettest); //輸出undefined
也即是說宣告後直接使用輸出都是一樣的undefined
三、使用未宣告的變數,不同
console.log(vartest); //輸出undefined(注意要注釋掉下面一行才能執行)
console.log(lettest); //直接報錯:referenceerror: lettest is not defined
直接使用沒有宣告的變數,let直接報錯,var的提示未定義: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);
var 重複宣告,第二次宣告會覆蓋第一次宣告的值
let重複宣告會報錯
五、變數作用域不同
console.log(vartest); //輸出"vartest changed.",內部"{}"中宣告的vartest變數覆蓋外部的lettest宣告
console.log(lettest); //輸出"test let ok.",內部"{}"中宣告的lettest和外部的lettest不是同乙個變數
}大括號包裹的是乙個作用域,不同;作用域let宣告的變數只在當前的作用域裡面有用,和另乙個作用域裡面的let宣告的變數是兩個不同的變數,互相不會有影響
而var的宣告的是全域性的變數
js中let和var定義變數的區別
let變數之前沒見過,剛遇到,探 竟。以下 function function function function console.log vartest 輸出 vartest changed.內部 中宣告的vartest變數覆蓋外部的lettest宣告 console.log lettest 輸出...
js中let和var定義變數的區別
也就是說,在函式內宣告了var,整個函式內都是有效的,比如說在迴圈內定義了乙個var變數,實際上其在迴圈以外也是可以訪問的,而let由於是塊作用域,所以如果在塊作用域內 比如說迴圈內 定義的變數,在其外面是不可被訪問的,所以let用在for let i i n i 是一種很推薦的寫法。也就是說,le...
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...