网站首页 > 技术文章 正文
在函数作用域或全局作用域中通过关键字var声明的变量,无论在哪里声明,都会被当成在当前作用域顶部声明的变量,这就是JavaScript的变量提升机制。我们看下面的代码:
这种变量提升机制在开发时会给我们造成很多的困扰,ECMAScript 6引入了let声明,用法与var相同,不过用let声明的变量不会被提升,可以把变量的作用域限制在当前代码块中。
我们将上述代码中的变量用let进行声明,如下所示:
使用let声明变量,还可以防止变量的重复声明。例如在某个作用域下已经存在某个标识符,此时再使用let关键字声明它,就会抛出错误,如下所示:
同一作用域下,不能使用let重复定义已经存在的标识符,但如果在不同的作用域下,则是可以的,这一点请读者注意,如下所示:
ECMAScript 6还提供了const关键字,用于声明常量。每个通过const关键字声明的常量必须在声明的同时进行初始化,如下所示:
与let类似,在同一作用域下用const声明已经存在的标识符也会导致语法错误,无论该标识符是使用var,还是let声明的。
如果使用const声明对象,对象本身的绑定不能修改,但对象的属性和值是可以修改的,我们看下面的代码:
猜你喜欢
- 2024-11-14 JavaScript let 与var 区别及var弊端
- 2024-11-14 JavaScript中let、var和const的区别及应用场景的介绍
- 2024-11-14 深入理解JS:var、let、const的异同
- 2024-11-14 JavaScript let 和 const javascript const的用法
- 2024-11-14 JavaScript中let、const和var的使用介绍
- 2024-11-14 JavaScript let 和 const的区别,及应用场景分析
- 标签列表
-
- content-disposition (47)
- nth-child (56)
- math.pow (44)
- 原型和原型链 (63)
- canvas mdn (36)
- css @media (49)
- promise mdn (39)
- readasdataurl (52)
- if-modified-since (49)
- css ::after (50)
- border-image-slice (40)
- flex mdn (37)
- .join (41)
- function.apply (60)
- input type number (64)
- weakmap (62)
- js arguments (45)
- js delete方法 (61)
- blob type (44)
- math.max.apply (51)
- js (44)
- firefox 3 (47)
- cssbox-sizing (52)
- js删除 (49)
- js for continue (56)
- 最新留言
-