let声明关键字

本文探讨了JavaScript中let关键字声明的变量的块级作用域,避免变量污染,以及不存在变量提升的特点。同时,介绍了const声明的常量,其块级作用域、必须赋初值和不可更改的特性。通过实例深入剖析了两者在实践中的应用和区别。

// let关键字声明的是变量,可以随意变化的值
// 特点1:具有块级作用域 相当于局部变量 不会污染变量 作用域之间相互独立
在大括号里面声明的变量具有块级作用域,只能在这个作用域内调用
例子:if(true) {
  let a=10;
}
console.log(a)
// 打印结果a is not defined a未定义
// 目的:防止循环变量变成全局变量
例子:
for(var i=0;i<3;i++) {
  // 循环体 业务代码
}
console.log(i)
// 注意:这里的i是全局变量
// 特点2:不存在变量提升
例子:
console.log(a) // a is not defined a未定义
let a=10
变量提升的例子 只提升声明 不提升赋值
console.log(a)
var a=10 // 结果是undefined 声明未赋值
特点3:let声明的关键字具有暂时性死区 
// 详细解析:与当前作用域项绑定,不会首外面同名变量的影响
例子:
var nmu=13;
if(true) {
  console.log(num)
  let num=13;
}
// 结果报错 Cannot access 'num' before initialization
// num初始化之前不能访问

const关键字

// const关键字声明的是常量,不能变化的值
// 特点1:具有块级作用域 相当于局部常量 不会污染变量 作用域之间相互独立
例子:
if(true) {
  const a=10;
  if(true) {
    const a=10;
     console.log(a)
  }
  console.log(a)
}
console.log(a)
// 结果 10 10
// 先打印里面的if作用域里面的常量10,再打印外面的if作用域里面的10
// a未定义
//特点2:const声明的常量必须赋初始值
例子:
const p;
console.log(p)
// 结果报错 Missing initializer in const declaration
// const声明缺少初始化
// 特点3:const常量声明的值不可以更改(指的是内存地址不能更改)
1)普通数据类型
例子:
const m=5;
m=10;
console.log(m);
// 结果报错 Assignment to constant variable.
// 不能分配一个值给常量
2)复杂数据类型
例子:
const arr=[1,5,6];
arr[0]=13;
console.log(arr)
// 结果arr=[16,3]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值