第九十四章 新的声明

如果不使用 var 又该使用什么呢?两种方式 const 和 let。用起来在语法上是和 var 一样的。但是有几个细节的问题需要注意:

作用范围

我们说 var 不好用就是因为一旦声明,全局起作用,太乱了。那么 const 和 let 都是局部声明,简单说就是只在它所在的大括号内起作用,出去了就没这回事了。

你在你们班是班长,这一点你们班的人都承认。向下到你们班每一个卫生小组,或是每一个学习小组,总之,在你们班的范围内,就都得到承认。但是你跑到我们班来指挥工作就不可以了,我们不认识你。你到老师办公室去指手画脚,就……(别说我没提醒过你。

不过大括号我们还没用过,我们先理解这个比喻就好。

重复声明

var 在范围上不讲道理,在声明上却比较随和,你可以反复声明同一个变量(虽然我们不建议),但是也不会报错。

我们现在各种小测试可能就在 Console 里面简单跑一下,几个例子中的变量名称也是重复的,页面也懒得刷新,但是如果使用的是 var 声明变量可能也没什么错误出现[1]

但是如果使用了 const 和 let,那么秒报错,敢让我重复工作?老子甩手不干了!

重复声明

这是有好处的,这样注释1中的问题就不会出现了。而且在某些特定结构中,用起来也特别便捷(后面会接触到)。

可变与不可变

你看我们说的新的声明方式是两个,他们有什么区别呢?let 和你所想象的一样,它声明的变量就是一个变量,比如:

let a=1;a=2;console.log(a);// 我先给 a 赋值 1,又给 a 赋值为 2,然后输出的值为 2,所以 a 代表的值发生了变化,这也是我们对于变量的基本理解。

那如果换成 const 的话:

const b=1;b=2;console.log(b);
改变 const

报错说的什么?——试图给常量赋值(Assignment to constant variable. )

等等,常量?!想想什么是常量,我们知道一个最常用的常量就是 π,对,就是圆周率。反正就是那种值一直不变的东东,和变量相对,毕竟变量的值是可以变化的(就像上面那样)。

我们用 const 声明出来的是常量(所以在声明的同时就要给它赋值)。而用 let声明出来的是变量,诶,这就很清楚了!

该去用谁

有同学说:全用 let 不就没问题了么,想改能改,不需要就不改啊。

但是程序中的情况往往比我们想象的要复杂,到了多人合作的时候就更复杂了,你的变量能不能依旧保持不变呢?这是一个未知数。

所以我们能用 const 就不用 let,没有特殊的理由就不用 var

可能你说常量什么的局限性太大,那么你真的以为 const 声明的常量就是绝对不变的么?这一点等我们学到面的知识时再讲解。

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容