let 和 const

本文详细介绍了 JavaScript 中的变量声明,包括 var、let 和 const 的特点。var 声明的变量存在变量提升和挂载到 window 上的问题,而 let 和 const 壳产生块级作用域并避免这些问题。let 不允许重复定义和变量提升,const 用于声明不可修改的常量,其值不能改变,但引用类型中指向的内存地址的值可以修改。在 for 循环中,var 可能会导致变量污染,而 let 则解决了这一问题。
摘要由CSDN通过智能技术生成

变量声明:var

在看 let、const 声明变量之前,先来看一下 var 声明变量的特点

var 声明变量的特点

  • 变量声明提升
  • 同一变量可以重复的进行定义
  • 变量被挂载到 window 上

变量的声明提升

所谓的变量声明提升,就是变量无论在何处声明,都会被默认的认为是在当前作用域的顶部进行声明的。即就是下列两种情况:

  • 全局作用域下,声明的变量会默认提升到全局作用域的最顶部
  • 函数作用域下,声明的变量会默认提升到函数作用域的最顶部

全局作用域

console.log(a); //undefined
var a = 10;

// 上面的代码相当于
var a;
console.log(a); //undefined
a = 10;

函数作用域

function test(flag) {
   
  if (flag) {
   
    var a = 10;
    console.log(a);
  }
  console.log(a);
}

test(false); // undefined
test(true); //10

// 上面的代码相当于
function test(flag) {
   
  var a;
  if (flag) {
   
    a = 10;
    console.log(a);
  }
  console.log(a);
}

可重复定义

var a = 10;
console.log(a);<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值