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%内容,订阅专栏后可继续查看/也可单篇购买
前端面试题 文章被收录于专栏
前端面试的一些常问问题、问题的具体实现(可直接运行)以及底层原理