微服务 教程
1085个小节阅读:195.6k
目录
C语言快速入门
JAVA全系列 教程
面向对象的程序设计语言
Python全系列 教程
Python3.x版本,未来主流的版本
人工智能 教程
顺势而为,AI创新未来
大厂算法 教程
算法,程序员自我提升必经之路
C++ 教程
一门通用计算机编程语言
微服务 教程
目前业界流行的框架组合
web前端全系列 教程
通向WEB技术世界的钥匙
大数据全系列 教程
站在云端操控万千数据
AIGC全能工具班
A A
White Night
ES6
新增了let
命令,用来声明变量。它的用法类似于var
,但是所声明的变量,只在let
命令所在的代码块内有效。
xxxxxxxxxx
{
let itbaizhan = 10;
var sxt = 1;
}
itbaizhan // ReferenceError: itbaizhan is not defined.
sxt // 1
for
循环的计数器,就很合适使用let
命令
xxxxxxxxxx
for (let i = 0; i < 10; i++) {
// ...
}
console.log(i);
// ReferenceError: i is not defined
对比var
和let
在循环中的应用
xxxxxxxxxx
var a = [];
for (var i = 0; i < 10; i++) {
a[i] = function () {
console.log(i);
};
}
a[6](); // 10
上面代码,输出的10
,而我们期待的是6
xxxxxxxxxx
var a = [];
for (let i = 0; i < 10; i++) {
a[i] = function () {
console.log(i);
};
}
a[6](); // 6
上面代码,输出的6
var
命令会发生“变量提升”现象,即变量可以在声明之前使用,值为undefined
。这种现象多多少少是有些奇怪的,按照一般的逻辑,变量应该在声明语句之后才可以使用
为了纠正这种现象,let
命令改变了语法行为,它所声明的变量一定要在声明后使用,否则报错。
xxxxxxxxxx
// var 的情况
console.log(foo); // 输出undefined
var foo = 2;
// let 的情况
console.log(bar); // 报错ReferenceError
let bar = 2;
let
不允许在相同作用域内,重复声明同一个变量。
xxxxxxxxxx
// 报错
function func() {
let a = 10;
var a = 1;
}
// 报错
function func() {
let a = 10;
let a = 1;
}
实时效果反馈
1. 下列那个不是Let的特性:
A Let是块级作用域
B Let不存在变量提升
C Let不允许重复声明
D Let和Var一样并没有区别
答案
1=>D