文章中//後面的均為列印結果
**1:
console.log(str1); //小花
console.log(str2); //error:str2 is not defined
let作用域僅限於當前**塊,而var的作用域是全域性的
**2:
let作用域不會被提公升,而var作用域會被提公升
**2相當於:
**3:
var str1 = "小花1";var str1 = "小花2";
let str2 = "小明1";
let str2 = "小明2";
上面這段**執行會報錯:identifier 'str2' has already been declared
var重複定義後面的會覆蓋前面的,而let則不行,會報語法錯誤,str2識別符號已經被宣告
**4:
按鈕1按鈕2
按鈕3按鈕4
按鈕5
此時不管點選哪個都是彈出點選第5個按鈕,因為此時在點選的事件觸發的時候,for迴圈已經走完了,而此時的i的值為5,此時i變成全域性的了,所以不管點選哪個都會彈出點選第5個按鈕。
**5:
按鈕1按鈕2
按鈕3按鈕4
按鈕5
將上面**的var改成let,點選的時候就會依次彈出對應的i的值,因為此時let定義的變數i的生命週期到for迴圈最後的大括號就結束了,所以alert中的i和btns[i]中的i對應的就是每次迴圈的值。
var 與 let 的區別
var與let的區別是作用域不同,var作用域在最近的函式區塊內,let作用域在最近的封閉區塊內,比函式區塊要小。如果沒有在區塊內的話,二者都是全域性的。全域性的 在函式區塊之外使用的話,二者是等價的,都是全域性的。let me go globally scoped vari able global...
let與var的區別
let為es6新增的用來宣告變數的命令,用法類似與var,那麼let和var具體是怎麼個用法以及他們之間有什麼區別呢?一.let宣告的變數只在let 塊有效 console.log a 報錯,a is not defined console.log b 2複製 用let宣告了變數a,用var宣告了變...
let 與 var 的區別
let 與 var 的區別 a.let 不能重複宣告,但var可以 b.let會產生塊級作用域,且只在自己的作用域內生效,但var不受限制 c.變數提公升 console.log i undefined var i 10 console.log i 10 console.log i 報錯 let i...