var和let关键字的比较

var和let关键字的比较

说明

let是es6新增的关键字

有效区域

let 是在代码块内有效,var 是在全局范围内有效:

{  
let a = 0;  
var b = 1; 
} 
a  // 此时报错ReferenceError: a is not defined 
b  // 此时输出1

重复声明

let 只能声明一次 var 可以声明多次

let a = 1; 
let a = 2; 
var b = 3; 
var b = 4; 
a  // 此时报错Identifier 'a' has already been declared 
b  // 此时输出4

let可以在循环中使用,每次循环都是一个新的变量

var是全局声明的,在循环中可以一直使用同一个变量

变量提升

console.log(a);  //报错ReferenceError: a is not defined 
let a = "apple";  
console.log(b);  //undefined var 
b = "banana";

变量 b 用 var 声明存在变量提升,所以当脚本开始运行的时候,b 已经存在了,但是还没有赋值,所以会输出 undefined。

变量 a 用 let 声明不存在变量提升,在声明变量 a 之前,a 不存在,所以会报错。

发布了143 篇原创文章 · 获赞 293 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/qq_45163122/article/details/104862355
今日推荐