x-note
Search…
Introduction
FE
JavaScript
ECMAScript
ECMAScript 6 变量及常量的声明
ECMAScript 6 变量的解构赋值
ECMAScript 6 Promise 对象
ECMAScript 6 Symbol
ECMAScript 6 Proxy
ECMAScript 6 Reflect
ECMAScript 6 new.target
ECMAScript 6 Set 和 WeakSet
ECMAScript 6 Map 和 WeakMap
ECMAScript 6 Iterator
ECMAScript 6 Generator
ECMAScript 6 class
ECMAScript 7
ECMAScript 8 async 函数
ECMAScript 8 内存共享与原子性
ECMAScript 8 Others
ECMAScript 2018
ECMAScript 2019
CSS
React
Webpack
Babel
前端模块化系统
重绘与重排
XSS
XSRF
点击劫持
webp 兼容方案
屏幕测量单位
WEB 客户端存储
WEB SEO
WEB 性能优化
正则表达式
Git
基础算法
HTTP
Protocol Buffers
gRPC
设计模式
Powered By
GitBook
ECMAScript 6 变量及常量的声明
ES6规范中,引入了新的关键字
let
用于声明变量,以及
const
用于声明常量
let
let
与
var
的用法类似
1
let
a
=
123
;
Copied!
不同之处在于:
let
的作用于只在其所属的代码块
1
var
a
=
[];
2
for
(
var
i
=
0
;
i
<
3
;
i
++
)
{
3
var
c
=
i
;
4
a
[
i
]
=
function
()
{
5
console
.
log
(
c
);
6
};
7
}
8
a
.
forEach
(
item
=>
{
9
item
();
10
})
11
// 4
12
// 4
13
// 4
14
15
var
b
=
[];
16
for
(
var
i
=
0
;
i
<
3
;
i
++
)
{
17
let
c
=
i
;
18
b
[
i
]
=
function
()
{
19
console
.
log
(
c
);
20
};
21
}
22
b
.
forEach
(
item
=>
{
23
item
();
24
})
25
// 0
26
// 1
27
// 2
Copied!
let
不会发生 “变量提升” 的现象
1
function
f1
()
{
2
let
n
=
5
;
3
if
(
true
)
{
4
let
n
=
10
;
5
}
6
console
.
log
(
n
);
// 5
7
}
8
f1
();
Copied!
let
不允许在相同作用域内重复声明同一个变量
1
{
2
let
a
=
10
;
3
var
a
=
1
;
4
}
5
// Uncaught SyntaxError: Identifier 'a' has already been declared
6
{
7
let
a
=
10
;
8
let
a
=
1
;
9
}
10
// Uncaught SyntaxError: Identifier 'a' has already been declared
Copied!
const
const
用于常量声明,一旦声明,参数的值就不能修改
1
const
PI
=
3.1415
;
2
console
.
log
(
PI
)
// 3.1415
3
PI
=
3
;
4
console
.
log
(
PI
)
// 3.1415
Copied!
Previous
ECMAScript
Next
ECMAScript 6 变量的解构赋值
Last modified
4yr ago
Copy link
Contents
let
const