JavaScript中var、let、const有何区别及ES6规范下的具体应用?
- 内容介绍
- 文章标签
- 相关推荐
本文共计1182个文字,预计阅读时间需要5分钟。
随着ES6规范的发展,JavaScript中定义变量的方法已经从单一的 `var` 方式发展到了 `var`、`let`、`const` 三种。`var` 众所周知,可被全局访问,而 `let` 和 `const` 则具有块级作用域,防止了变量的全局污染。`let` 和 `const` 有什么新特性?何时应该使用呢?下面是小总结:
随着ES6规范的到来,Js中定义变量的方法已经由单一的 var 方式发展到了 var、let、const 三种之多。var 众所周知,可那俩新来的货到底有啥新特性呢?到底该啥时候用呢?下面就是小编总结出的关于javascript中var与ES6规范中let、const区别详解
我们先来絮叨絮叨 var 方式定义变量有啥 bug ?
Js没有块级作用域
请看这样一条规则:在JS函数中的var声明,其作用域是函数体的全部。
for(var i=0;i<10;i++){ var a = 'a'; } console.log(a);
明明已经跳出 for 循环了,却还可以访问到 for 循环内定义的变量 a ,甚至连 i 都可以被放访问到,尴尬~
2.** 循环内变量过度共享 **
你可以猜一下当执行以下这段代码时会发生什么
for (var i = 0; i < 3; i++) { setTimeout(function () { console.log(i) }, 1000); }
在浏览器里运行一下,看看和你预想的结果是否相同?
没错,控制台输出了3个3,而不是预想的 0、1、2。
本文共计1182个文字,预计阅读时间需要5分钟。
随着ES6规范的发展,JavaScript中定义变量的方法已经从单一的 `var` 方式发展到了 `var`、`let`、`const` 三种。`var` 众所周知,可被全局访问,而 `let` 和 `const` 则具有块级作用域,防止了变量的全局污染。`let` 和 `const` 有什么新特性?何时应该使用呢?下面是小总结:
随着ES6规范的到来,Js中定义变量的方法已经由单一的 var 方式发展到了 var、let、const 三种之多。var 众所周知,可那俩新来的货到底有啥新特性呢?到底该啥时候用呢?下面就是小编总结出的关于javascript中var与ES6规范中let、const区别详解
我们先来絮叨絮叨 var 方式定义变量有啥 bug ?
Js没有块级作用域
请看这样一条规则:在JS函数中的var声明,其作用域是函数体的全部。
for(var i=0;i<10;i++){ var a = 'a'; } console.log(a);
明明已经跳出 for 循环了,却还可以访问到 for 循环内定义的变量 a ,甚至连 i 都可以被放访问到,尴尬~
2.** 循环内变量过度共享 **
你可以猜一下当执行以下这段代码时会发生什么
for (var i = 0; i < 3; i++) { setTimeout(function () { console.log(i) }, 1000); }
在浏览器里运行一下,看看和你预想的结果是否相同?
没错,控制台输出了3个3,而不是预想的 0、1、2。

