【ES6新特性拾遗】1.var,let,const的区别?
答:
1.var存在变量提升,let和const不存在变量提升。
2.let不允许重复声明。
3.let因为存在块级作用域,所以会存在暂时性锁区。如下代码:
var tmp = 123;
if(true){
tmp = "abc"//ReferenceError
let tmp;
}
//上面的代码中存在全局变量tmp,但是块级作用域内let又声明了一个局部变量tmp,导致后者绑定这个块级作用域,所以在let声明变量钱,对tmp赋值会报错
4.const声明一个只读的变量,一旦声明,变量的值就不能改变。其本质是声明得变量指向的那个内存地址不能改动。对于简单的数据(数值,字符串,布尔值),其值就直接写在变量指向的内存地址中,等同于常量。而对于对象或者数组,变量指向的地址只是指针,其地址引用的对象或者数组的内容是可以改变的。但是不能重新赋值另外一个对象或者数组,因为这相对于赋值一个新的引用地址,相对于改变了变量,所以会报错。
推荐阅读
- JavaScript的继承
- 原型与原型链的个人理解
- uniapp|uniapp 实现保持登录状态
- js|Vue快速入门-个人笔记
- vuex|vuex5 Pinia状态管理
- 青龙教程资源分享|傻妞js插件教程
- CSS|【总结】(前端面试必考题 —— CSS两栏布局(最全面))
- 面试|【总结】(大厂面试常考手撕代码 —— JavaScript实现效果)
- JavaScript基础知识|ES6(Generator生成器的介绍及场景应用)