Javascript中var和let的区别。

1. var定义的变量可以被重复声明,let不能。

// var定义变量
var v = 1;
var v = 100;
console.log(v); //100
// let 定义的变量
let m = 200;
let m = 600;
consloe.log(m); //Uncaught SyntaxError: Identifier 'm' has already been declared

2. 在非严格模式下的全局作用域。
Javascript中var和let的区别。_第1张图片
Javascript中var和let的区别。_第2张图片
解释:在非严格模式下,通过var定义的变量会在全局作用域下绑定到window对象上,通过let定义的变量则不会。

3. 变量的提升和暂时性死区。
Javascript中var和let的区别。_第3张图片在这里插入图片描述

解释:var和let定义的变量都会存在变量的提升,let定义变量的时候会存在一个暂时性死区,因为let未执行完所有语句之前,所有未定义的变量都是不可用的。

4. 作用域概念。
Javascript中var和let的区别。_第4张图片
Javascript中var和let的区别。_第5张图片
Javascript中var和let的区别。_第6张图片
解释:var定义的变量只有函数作用域和全局作用域的概念,let会多出一个块级作用域。

你可能感兴趣的:(javascript)