let var const的区别

letvarconst 都是JavaScript中用于声明变量的关键字,但是他们之间有一些关键的区别。

1. 作用域:

var:变量声明时会被提升到函数作用域的顶部,但初始化不会提升。var 声明的变量在全局作用域或函数作用域中有效。

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

let:变量是块级作用域的,意味着它们仅在声明它们的块(例如一个循环或条件语句)或子块中有效。

        {
            let a = 10
        }
        console.log(a)   //Uncaught ReferenceError: a is not defined

而把let改成var则会输出10。
const:与 let 类似,const 声明的变量也是块级作用域的。

2. 重复声明:

var:可以在相同的作用域内重复声明同一个变量。

        var a = 10;
        var a = 11;
        console.log(a)

let:在相同的作用域内不能重复声明同一个变量。
const:在相同的作用域内不能重复声明同一个变量。

3. 初始化:

var:可以先声明变量而不进行初始化,稍后赋值。
let:可以先声明变量而不进行初始化,稍后赋值。
const:声明变量时必须进行初始化,且一旦赋值后,其引用的值不能被改变(但对于对象和数组,可以改变其内部的属性和元素)。

4. 修改:

var:声明的变量可以被重新赋值。
let:声明的变量可以被重新赋值。
const:声明的变量不能被重新赋值,但如果是对象或数组,可以修改其内部的属性或元素。

		const PI = 3.14
		PI = 3  //报错
		const f = {}
        f.a = 1    //可以添加属性
		const f = Object.freeze({})   //冻结对象

总结来说,letconstES6(ECMAScript 2015)引入的新特性,它们提供了更好的作用域控制和防止了一些常见错误。const 用于声明不应该改变的变量,而 let 用于声明块级作用域的变量。var 是旧式的变量声明方式,由于作用域和提升行为可能会导致一些难以发现的错误,因此在现代JavaScript编程中,推荐使用 letconst 代替 var

  • 7
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值