ITPub博客

首页 > IT职业 > IT职场 > 理解let并 const在JavaScript ES6中(1)

理解let并 const在JavaScript ES6中(1)

原创 IT职场 作者:cenfeng 时间:2019-07-18 16:39:40 1 删除 编辑

两种新的方法来定义变量 let 和  const

var 传统上 ,关键字 是我们在JavaScript中定义变量的方式。 然而,在JavaScript ES6中,增加了两个新的关键字,这些关键字更好地代表了存储的数据类型,从而使它们更容易调试,更不容易出错。 他们是:

  • 让
  • 常量

首先要了解关于 let 和  const 的是,他们是块作用域,相比 var ,这是功能范围的。 这意味着它们是定义它们的最近的块(花括号)的 var 本地 ,而 对于整个函数是局部的,或者如果在函数外定义则是全局的。 稍后会详细介绍。

之间的区别 let ,并 const  就在于,前者应该被用来认为有可能发生变化的变量,同时 const ,顾名思义,你知道数据将保持不变。 实际上,尝试在设置 const 之后 重置其 值将导致错误。

let关键字

用于 let 在变量持有的数据发生变化时声明变量,类似于 var :

1
2
3
4
<font style= "vertical-align: inherit;" ><font style= "vertical-align: inherit;" >让myage = 39</font></font><font></font><font style= "vertical-align: inherit;" ><font style= "vertical-align: inherit;" >
if ( new Date()。getFullYear == 2018){</font></font><font></font><font style= "vertical-align: inherit;" ><font style= "vertical-align: inherit;" >
     myage = 40</font></font><font></font><font style= "vertical-align: inherit;" ><font style= "vertical-align: inherit;" >
}</font></font>

正如您所看到的,一旦我使用了变量定义 let ,我可以通过使用新值再次引用它来更新其值,而不 let 在其前面添加关键字。

与之不同 var ,您不能  let 在块内多次 定义同一个 变量:

1
2
3
<font style= "vertical-align: inherit;" ><font style= "vertical-align: inherit;" >让myage = 39</font></font><font></font><font style= "vertical-align: inherit;" ><font style= "vertical-align: inherit;" >
让myname = '乔治' </font></font><font></font><font style= "vertical-align: inherit;" ><font style= "vertical-align: inherit;" >
let myage = 40 // SyntaxError:已经声明了标识符myage</font></font>

这有助于防止在声明变量后意外覆盖变量,这种情况经常发生 var 。

如上所述, let 是块作用域,这意味着它在块(花括号)中可用(它包括内部块),但不在它之外:

1
2
3
4
<font style= "vertical-align: inherit;" ><font style= "vertical-align: inherit;" > if ( true ){ //新块</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
     让myname = '乔治' </font></font><font></font><font style= "vertical-align: inherit;" ><font style= "vertical-align: inherit;" >
}</font></font><font></font><font style= "vertical-align: inherit;" ><font style= "vertical-align: inherit;" >
console.log(myname) //语法错误,myname未定义</font></font>

相比之下,如果我们使用了var关键字:

1
2
3
4
<font style= "vertical-align: inherit;" ><font style= "vertical-align: inherit;" > if ( true ){ //新块</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
     var myname = 'George' </font></font><font></font><font style= "vertical-align: inherit;" ><font style= "vertical-align: inherit;" >
}</font></font><font></font><font style= "vertical-align: inherit;" ><font style= "vertical-align: inherit;" >
console.log(myname) //记录'George'</font></font><font></font>

使用时 var ,变量的范围限定为函数,或者在上面的示例之外,变量到窗口对象本身。


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/69933200/viewspace-2651011/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2019-06-18

  • 博文量
    125
  • 访问量
    129477