最近在学习尤达上面的一些Es6语法,记录一下。
在 JavaScript 中声明变量的唯一方式是使用关键字 var。
本质上var在使用过程中有时候会带来一些问题,在执行任何 JavaScript 代码之前,所有变量都会被“提升”,也就是提升到函数作用域的顶部,这个时候var 声明的函数本身就会被局限。
为什么会是undefiend?下面图为你说明。
let 和 const
使用 let 和 const 声明的变量解决了这种提升问题,因为它们的作用域是到块,而不是函数。
之前,当你使用 var 时,变量要么为全局作用域,要么为本地作用域,也就是整个函数作用域。
如果在代码块(用花括号 { } 表示)中使用 let 或 const 声明变量,那么该变量会陷入暂时性死区,直到该变量的声明被处理。这种行为会阻止变量被访问,除非它们被声明了。
关于使用 let 和 const 的规则
let 和 const 还有一些其他有趣特性。
使用 let 声明的变量可以重新赋值,但是不能在同一作用域内重新声明。
使用 const 声明的变量必须赋初始值,但是不能在同一作用域内重新声明,也无法重新赋值。
关于使用 let 和 const 的规则
let 和 const 还有一些其他有趣特性。
使用 let 声明的变量可以重新赋值,但是不能在同一作用域内重新声明。
使用 const 声明的变量必须赋初始值,但是不能在同一作用域内重新声明,也无法重新赋值。
何时应该使用 let 和 const?
法则如下:
当你打算为变量重新赋值时,使用 let,以及
当你不打算为变量重新赋值时,使用 const。
因为 const 是声明变量最严格的方式,我们建议始终使用 const 声明变量,因为这样代码更容易读懂,你知道标识符在程序的整个生命周期内都不会改变。如果你发现你需要更新变量或更改变量,则回去将其从 const 切换成 let。