ES6:ES6的var ,let,const区别(五颗星)
1.var
1. 可以先使用,再声明
2. 可以重复定义一个变量
3. for循环中使用------造成全局变量污染
4. 拥有预解析
<script>
// 1. 可以先使用,再声明
console.log(a);
var a = 10;
// 2. 可以重复定义一个变量
var b = 10;
var b = 20;
console.log(b);//20
// 4. 拥有预解析
// 3. for循环中使用------造成全局变量污染
for(var i=0;i<5;i++){
console.log(i);0,1,2,3,4
}
// i 是 全局变量
console.log(i);5
</script>
2.let-----解决var的问题
1. 不能先使用,再声明,可以先声明不赋值,后面在赋值。
2. 不能重复定义一个变量,
3. 不会造成全局变量污染的
4.拥有块级作用域(ES6) {}内的会形成一个作用域
5.let 没有预解析
<script>
// 需求: 使用let解决var的问题
// 1. 不能先使用,再声明
// console.log(a);//报错
let a = 10;
console.log(a);//10
// 2. 不能重复定义一个变量
let b = 10;
// let b = 20;//报错
// **** 5.let 没有预解析
// 3. 不会造成全局变量污染的
for(let i=0;i<5;i++){
// 将i变成局部变量
console.log(i);//0,1,2,3,4
}
// console.log(i);//报错,i没定义
// **** 4.拥有块级作用域(ES6) {}内的会形成一个作用域
{
let c = 10;
}
// console.log(c);//报错,c没定义
</script>
3.const
1. 不能先使用,再声明(没有预解析)
2. 一旦声明必须赋值,不能重复声明
3. 赋值之后 不能修改
4. 拥有块级作用域
5.引用类型的值可以修改
当const声明一个常量,这个常量是引用数据类型(对象,数组,函数....), const变量一旦赋值(引用地址)不能修改,为什么不能修改:
剩余60%内容,订阅专栏后可继续查看/也可单篇购买
前端面试题 文章被收录于专栏
前端面试的一些常问问题、问题的具体实现(可直接运行)以及底层原理
