let和var的區別是什麼

2021-08-16 03:40:47 字數 956 閱讀 4847

let是es6引入的他和var都是定義變數的,但是他們又是有區別的。

1,var是最近的函式作用域,let的作用域是最接近的塊作用域,這個比函式的作用域要小。

2、當他們是全域性變數時,let和var是相同的。當他們處在乙個函式內,也是相同的。

let me = 'go'; 

var i = 'able';

或者

function

change()

3.var定義以後可以修改,不初始化會輸出undefined,不會報錯。let未定義就輸出則會報錯直接報錯:referenceerror: lettest is not defined

4、如果在函式的for裡面定義,let只在這個for裡面有效。var是在整個函式裡面有效

function allyilliterate() ;

//tuce 在這裡就沒效了

};function bye40() ;

//nish在這裡是有效的

};5、重複宣告乙個變數時。var會覆蓋上乙個變數的賦值,而let則會報錯你已經定義過了。

varvartest =

'test var ok.'

; let

lettest =

'test let ok.'

; var

vartest =

'vartest changed.'

; let

lettest =

'lettest changed.'

; //直接報錯:syntaxerror: identifier 'lettest' has already been declared

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 全域性作用域 指的是,在全域性範圍下定義 不在函...