版权声明:本文首发 http://asing1elife.com ,转载请注明出处。 https://blog.csdn.net/asing1elife/article/details/82820647
var是ES6之前JavaScript用于定义变量的语法,而let const是ES6之后JavaScript用于定义变量的语法
更多精彩
- 更多技术博客,请移步 asing1elife’s blog
var存在的两个bug
- JS没有块级作用域
- 通过var声明的变量,其作用域是函数的全部
- 循环内变量会过度共享
- 意思就是说在循环内部定义的变量,在循环外部依旧可以访问
let存在的意义
- let声明的变量拥有块级作用域
- let声明的变量其作用域只是外层快,而不是外层函数
- let声明的全局变量不是全局对象的属性
- 通过let声明的全局变量无法通过window.变量名进行访问,其只存在于一个不存的作用域中
- 行如
for(let x in data)
的循环在每次迭代时都会为x
创建新的绑定 - let声明的变量无法重新被定义
const的作用
- const就是用于定义常量的