JavaScript 变量声明
警告
本文最后更新于 2023-10-22,文中内容可能已过时。
JavaScript 变量声明
ES6 的特性之一是添加了 let
和 const
,我们在开发中,应该尽量使用 let,而不是 var,现在基本主流浏览器都开始支持 ES6,因此不用担心兼容问题
一个很经典的例子
当 for 循环中的 i 通过 var 声明的时候
|
|
输出
|
|
当 for 循环中的 i 通过 let 声明的时候
|
|
输出
|
|
var
声明的作用域是全局的或函数/局部的。var 会无视块级作用域。
for 的每次循环都会产生一个块级作用域,如果 i 为 var 声明,则 i 其实可以视为一个全局变量(因为 i 不在函数内),每一个块级作用域使用的都是同一个 i,如果 i 为 let 声明,则每一个块级作用域中的变量都是不同的,函数执行时输出的是自己上一级(循环产生的块级作用域)作用域下的 i 值,因此 arr[i] 的输出结果会不同。