JavaScript关键词 之let

本文详细介绍了JavaScript ES2015中引入的let和const关键字,它们带来了块级作用域,解决了var声明的变量存在的问题。let允许在块中声明变量,不可在相同作用域或块内重新声明,而const用于声明常量,一旦赋值不能更改。此外,let在循环中避免了变量污染,不会像var那样提升到顶部,确保了变量的作用域限制。
摘要由CSDN通过智能技术生成

ES2015引入了两个重要的JavaScript新关键词:let 和 const
这两个关键词在JavaScript 中提供了块作用域(Block Scoped)变量 和常量

ES2015之前只有两种类型的作用域:JavaScript作用域详解

-1JavaScript块作用域

  • 通过var 关键词声明的变量没有块作用域;在块{}内声明的变量可以从块之外进行访问。
    例如:
{
var x = 10;
}
//此处可以使用 x 
  • 使用 let 关键词声明拥有块作用域的变量,在{}内声明的变量无法从块外访问
{
let x = 10;
}
//此处不可以使用x

-2重新声明变量

  • -2.1使用var 关键字声明变量:在块中声明变量也将重新声明块外的变量;
    例子:
var x = 10;
// 此处 x 为 10
{ 
  var x = 6;
  // 此处 x 为 6
}
// 此处 x 为 6
  • -2.2使用let关键字不会出现上述问题:
    例子:
var x = 10;
// 此处 x 为 10
{ 
  let x = 6;
  // 此处 x 为 6
}
// 此处 x 为 10

-3循环作用域

  • 在循环中使用 var
var i= 7;
for(var i=0;i<10;i++){
	//逻辑
}
//此处 i为10

循环中使用变量var 重新声明了循环外的变量

  • 在循环中使用let
let i= 7;
for(let i = 0; i < 10 ; i++){
	//逻辑
}
//此处i为7

在循环中使用的变量中使用let并不会重新声明循环外的变量
也就是说在循环中用 let声明了变量i,那么只有在循环内变量i才是可见的。

-4.函数作用域 – 全局作用域 let 和 var相似
-5通过let 关键词定义的全局变量不属于window对象

-6重新声明

  • 在相同的作用域,或在相同的块中,通过 let 重新声明一个 var 变量是不允许的
var x = 10; //ok
let x = 6; //不允许
{
	var x = 10; //ok
	let x = 5; //不允许
}
  • 在相同作用域中,或者在相同的块中,通过let重新声明一个let变量是不允许的。
  • 在相同作用域或相同块中,通过var 重新声明let变量是不允许的。
  • 在不同的作用域或块中,通过let重新声明变量是允许的。

-7提升

通过 let 定义的变量不会被提升到顶端。

在声明 let 变量之前就使用它会导致 ReferenceError。

//在此处,不可以使用myName
let myName;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值