全面感知ES6(1)变量的扩展

本文详细比较了ES6中的let与传统var声明变量的区别,包括变量提升、块级作用域等问题,并介绍了const声明常量的特点及使用注意事项。

ES6中的变量的扩展

和var相比又有哪些区别呢?

首先,让我们回想下var都有那些特点和缺点

/*
var 声明变量的缺点:
1.可以重复声明
2.不能限制修改
3.没有块级作用域
特点:
有变量提升的功效
*/

想对比下,在让我们看下let的特点和缺点

/*
let 变量
1.不能重复声明
2.存在块级作用域
3.不存在变量提升功效
*/

看解释的话可能看的不是太懂,那就让我们直接看代码吧。

比如:

    console.log(a); //undefined
//因为var有变量提升问题
var a = 1;
    var a = 3;
console.log(a) //3
//var可以进行修改值,也可以进行变量的从新赋值

    console.log(a)//报错
// let不存在变量提升的问题,所以不能再声明变量前进行打印
let a = 1;
    a = 3;
console.log(a)//3
    //let不可以进行修改值,但是可以进行变量的重新赋值
    let a = 4;
console.log(a)//报错
    //let不可以重复声明

在比如

    {
var t = 99;
}
console.log(t); //99
//var没有块级作用域的概念,所以可以获取到大括号里面的值
    
   {
let T = 3;
alert(T);//3
}
console.log(T); //报错
//let有块级作用域的概念

const

/*
const 常量
常量一旦定义了,不可修改
const声明的数组和对象,可以向数组和对象数组中push和pop可以修改对象的属性值
原因是:
向数组中添加和删除东西,修改对象的属性值,并不会改变他自身原来的内存地址
*/

比如

    
    const m = 1;
m = 4;//报错
console.log(m);

如果是数组呢?

    
    const arr = [];
arr.push(2);
console.log(arr);//[2]

并没有报错,大家可以试一下。

关于ES6的变量扩展我能分享给大家大概就是这么多了,

如果上述代码有错误和不足,请评论或私信,我好及时改正。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值