es6 新增了两个声明类关键词 const 和 let
现在来分析一下 这两个声明类关键词与 var 的区别
const 是区别最大的一个:
const 代表常量与变量不同的是 常量定义之后无法修改,变量是可以的.
var boy = 'sjy' console.log(boy) boy = 'tom' console.log(boy) const girl = 'Alisa' console.log(girl)

常量 无法修改
var boy = 'sjy' console.log(boy) boy = 'tom' console.log(boy) const girl = 'Alisa' console.log(girl) //这样是无法通过编译的,有兴趣的朋友可以去试一下 girl = 'Abby' console.log(girl)
let 与 var 非常相似也是定义变量
通常使用 var 定义一个变量后会造成 全局变量污染
,打个比方我想修改 一个div
的背景颜色我在样式中这么写
div { background-color: #000 }
这样确实可以改变这个 div 的背景颜色,但是会导致其他所有 div 背景颜色都改变,这就是全局污染
解决办法很简单给这个 div 一个 id 或者 class <div class="a1"></div>
.a1 { background-color: #000 }
在 css 中我们这样就可以解决了
JavaScript 中的变量污染:
var i = 'sjy' console.log(i) for(var i=0; i<=3; i++) { console.log(i) } console.log(i)
运行效果:

一开始定义 i="sjy" 中间放入一段 for 循环之后 i=4! EXM? 不是等于 sjy 吗?瞬间懵逼了,倘若变量一多想都不敢想。。。
使用 let:
if(true) { var varTest = 'sjy' let letTest = 'sjy' } //可以访问 console.log(varTest) //不可访问 console.log(letTest)
运行效果:

因为 let 定义的变量是块级的变量 let 只对它所在的最内侧块内有效,而 var 的范围至少是一个函数之内。
所以写 let 非常适搭配 if
for
这些语句来使用,减少变量污染
希望大家可以养成良好的代码书写习惯,有效的减少 bug 缩短开发时间!
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于