let和var的区别
Posted llhweb
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了let和var的区别相关的知识,希望对你有一定的参考价值。
- 通过var定义的变量,作用域是整个封闭函数,是全域的 。通过let定义的变量,作用域是在块级或是子块中。
- 但是直接用let声明变量不赋值是会打印undefined,还是初始化了,只是let声明放在赋值之后,let声明会提前但不会初始化
- let a; alert(a);//值为undefined alert b;//会报错 let b
- let不允许在相同作用域内,重复声明同一个变量。
- 只要块级作用域内存在let命令,它所声明的变量就“绑定”这个区域,不再受外部的影响。总之,在代码块内,使用let命令声明变量之前,该变量都是不可用的,尽管代码块外也存在相同全局变量。
- let : 变量只能声明一次
- var : 变量可以多次声明
for(var i=0;i<5;i++){ setTimeout(function(){ console.log("var:" + i); }) } // let for(let i=0;i<5;i++){ setTimeout(function(){ console.log("let" + i); }) }
以上是关于let和var的区别的主要内容,如果未能解决你的问题,请参考以下文章