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的变量扩展我能分享给大家大概就是这么多了,
如果上述代码有错误和不足,请评论或私信,我好及时改正。
本文详细比较了ES6中的let与传统var声明变量的区别,包括变量提升、块级作用域等问题,并介绍了const声明常量的特点及使用注意事项。
186

被折叠的 条评论
为什么被折叠?



