1:不存在变量提升。
console log(c);
var c='10'
用var,预解析:
var c;
console log(c);
c='10'
用var,得到结果默认 undefined 所以var可以先用,后赋值。 用let,则必须一步步走,
console log(c);
let c='10'
会报错。所以在let中不能先用后赋值!
2:同一作用域下不能重复定义同一名字。
var a=10;
var a=100;
console log(a)
结果100,后面会覆盖上面的。
var t=10;
var t=100;
console log(t)
报错!error .不能重复定义某一名字!
var t=10;
t=100;
console log(t);
这种不报错,因为只是t的值改了,没有重新定义t。
3:有严格作用域!
var 属于函数作用域!
function p(){
var n=10 if(true){ var n=100 }
console log(n) }
p()//100
var会导致局部能改全局设置。 let,属于块级作用域,以大括号为边界!互不侵犯!
function p()
{ let n=10 if(true){ let n=100 }
console log(n) }
p()//10。
在这里用let定义了两个n。但是没错,为什么呢?????因为他们作用域不一样!!!就像你爹有你,你邻居家王叔也有自己的孩子。嗯就酱!手打不易!!给个赞吧,有疑问可在评论区搞事情!看到会解答的哦!