js中let和var定義變數的區別

2022-06-10 11:24:09 字數 694 閱讀 2950

也就是說,在函式內宣告了var,整個函式內都是有效的,比如說在迴圈內定義了乙個var變數,實際上其在迴圈以外也是可以訪問的,而let由於是塊作用域,所以如果在塊作用域內(比如說迴圈內)定義的變數,在其外面是不可被訪問的,所以let用在for (let i; i < n; i++)是一種很推薦的寫法。

也就是說,let必須是先定義,再使用,而var先使用後宣告也行,只不過直接使用但是沒有卻沒有定義的時候,其值為undefined,這塊要注意,這一塊很容易出問題,這也是的let比var更好的地方,至於為啥會有這種區別呢,實際上var有乙個變數提公升的過程。也就是說,當這個函式的作用域被建立的時候,實際上var定義的變數都會被建立,並且如果此時沒有初始化的話,則缺省會初始化乙個undefined。

**舉例:

while(1)

alert(let1);

//不可訪問

alert(var1);

//可以訪問

也就是說,let只對它所在的最內側塊內有效,而var的範圍至少是乙個函式之內。

從規範化的角度來說,let是更推薦的,比如說,在前面宣告了乙個var變數,後來寫**,因為忘了之前的**邏輯,又宣告了乙個同名的變數,如果這倆變數邏輯不一樣,並且後面都要用的話,很容易出問題,且不容易維護。

總之呢,let從規範化的角度來說,要比var要進步了很大一步。所以一般情況下的話,推薦用let,const這些

js中let和var定義變數的區別

let變數之前沒見過,剛遇到,探 竟。以下 function function function function console.log vartest 輸出 vartest changed.內部 中宣告的vartest變數覆蓋外部的lettest宣告 console.log lettest 輸出...

JS中let與var定義變數的不同

let比var要嚴格。1.宣告後未賦值,表現相同。2.使用未宣告的變數,表現不同。var 輸出undefined let 直接報錯 3.重複宣告乙個變數時,表現不同 var 輸出內容 let 直接報錯 4.變數作用範圍,表現不同 使用 重複宣告 var 輸出 內部宣告的變數 let 輸出 外部宣告的...

let和var定義變數的區別

一 let不能在js中使用,是es6的語法,需要在js中使用就必須使用嚴格模式 use strict 二 宣告後未賦值,表現相同 var vartest let lettest console.log vartest 輸出undefined console.log lettest 輸出undefin...