前端面试纪实(三):ES6的const和let
来源:互联网 发布:微信公众号矩阵案例 编辑:程序博客网 时间:2024/05/16 04:43
1 前言
由于我在简历中写我了解es6,所以杭州有赞的面试官问了我很多es6的问题
es6是JS的国际标准化组织在15年推出的新版本JS
es6的详细介绍可以看阮一峰老师的开源书籍:
http://es6.ruanyifeng.com/#docs/intro
由于主要内容来自阮一峰老师的开源书籍,所以本篇文章被我标记为转载。
2 let和var的区别
2.1 let不存在var的变量提升
什么是变量提升,即JS变量可以先使用,后声明。(这在一般的语言:Java, C中不存在的)
如果var声明的变量在之前被使用,是不会报错的,当然那时候的值是undefined
// var 的情况console.log(foo); // 输出undefinedvar foo = 2;
let声明的变量提前被使用的话,则会报错
// let 的情况console.log(bar); // 报错ReferenceErrorlet bar = 2;
2.2 暂时性死区
暂时性死区=》新增块级作用域
只要块级作用域内存在let
命令,它所声明的变量就“绑定”(binding)这个区域,不再受外部的影响。
var tmp = 123;if (true) { tmp = 'abc'; // ReferenceError let tmp;}
总之,暂时性死区的本质就是,只要一进入当前作用域,所要使用的变量就已经存在了,但是不可获取,只有等到声明变量的那一行代码出现,才可以获取和使用该变量。
2.3 不允许重复声明
不允许重复声明let不允许在相同作用域内,重复声明同一个变量。// 报错function () { let a = 10; var a = 1;}// 报错function () { let a = 10; let a = 1;}
3 const
const声明的是一个常量
与let相同,都存在从2.1到2.3的3点特征(这点在面试时候竟然回答上来了,我自己都觉得惊奇)
对于引用类型,const指向的是一个内存地址,所以只能保证指针固定。对于一个const数组而言,我们可以往数组里添加内容
比如这样:
const a={};a.b='c';//可执行
阅读全文
0 0
- 前端面试纪实(三):ES6的const和let
- ES6的let和const
- 【ES6】let和const
- es6 let和const
- ES6-let和const
- es6 let和const
- ES6的let和const命令(一)
- ES6对于let和const的认识
- ES6(let 、const)
- 深入浅出ES6(十四):let和const
- ES6之一(let和const)
- 深入ES6 (二)let和const
- 初学ES6(一) let和const
- es6-1(let和const命令)
- # es6笔记(一):let和const
- 【ES6系列】let和const
- ES6学习-let和const
- ES6 中的 let 和 const
- 解压和压缩命令
- Distance on Chessboard POJ
- 3504: [Cqoi2014]危桥
- Java:数组工具类Arrays类的常用方法的用法及代码
- iPad 界面设计的优秀实例之FLUD
- 前端面试纪实(三):ES6的const和let
- 5-2 表达式转换 (25分)
- Gym
- 常用控件的使用方法
- 菜鸟眼中的vim 编译器
- C语言中二级指针使用
- 并查集模板代码实现(非递归)
- 学后感 看小甲鱼老师的Python教程有感
- 原生javascript图片轮播实现