09-javascript基础---let和const

本文详细介绍了JavaScript中let和const的用法与特性,包括它们的作用、特点、变量提升及块级作用域等内容,并对比了let与var的区别。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、let

1、作用

var类似,用于声明一个变量

2、特点

  • 无法重复声明

  • 块级作用域有效

  • 会预编译,有变量提升,但是不能提前使用提升的变量

/* 无法重复声明 */
let a = 123
let a = 345 // 报错

3、let的变量提升

  • 全局变量提升:会创建一个变量对象Script,用来收集全局作用域下 let 定义的变量,但是没有赋值
  • 局部变量提升:会将var let定义的变量全部放到当前函数的变量对象中
  • var变量提升的区别:let的变量提升,在为赋值无法使用

在这里插入图片描述

在这里插入图片描述

4、let的块级作用域

最著名的闭包问题,就是因为var没有属于自己的块级作用域(函数级作用域)才会出现的,所以需要使用一个函数来包裹它,给它一个块级作用域

let btns = document.getElementsByTagName("button");
 for(var i = 0; i < btns.length; i++) {
     (function (i){
         btns[i].onclick = function() {
             console.log(i)
         };
     })(i)
 }

但如果使用有块级作用域的变量let,就不会出现这个问题了

let btns = document.getElementsByTagName("button");

for(let i = 0; i < btns.length; i++) {
    btns[i].onclick = function() {
        console.log(i)
    };
}

在这里插入图片描述

二、const

1、作用

定义一个常量

2、特点

  • 不能修改,(指无法修改指针指向)
  • let相同

注意:obj、array使用 const 定义的,是可以修改里面的元素的,因为并不会修改指针的指向

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值