let和varde 的区别
防止变量提升。
例:
console.log(c);
var c="111";
其运行结果为
以上代码之所有会出现这种情况,是因为js会进行预解析,实际等于
let c;
console.log(c);
c='111';
console.log(c);
let c="111";
其运行结果为
所以,let不会遇解析,var会
同一个作用域下不允许定义同一个名字
var c=1;
var c=100
console.log(c);
其结果如下
let c=1;
let c=100
console.log(c);
防止变量名污染
function name(){
var c=10
if(true){
var c=100
}
console.log(c)
}
name()
结果如下
function name(){
let c=10
if(true){
let c=100
}
console.log(c)
}
name()