let與var的區別

2022-08-24 18:48:10 字數 850 閱讀 2154

文章中//後面的均為列印結果

**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...