1.说说var、let、const之间的区别
var
、let
、const
三者区别可以围绕下面五点展开:
变量提升
var
声明的变量存在变量提升,即变量可以在声明之前调用,值为undefined
let
和const
不存在变量提升,即它们所声明的变量一定要声明后再使用,否则报错暂时性死区
var
不存在暂时性死区let
和const
存在暂时性死区,只有等到声明变量的那一行代码出现才能获取和使用该变量块级作用域
var
不存在块级作用域let
和const
存在块级作用域重复声明
var
允许重复声明变量 下面的变量会覆盖上面的let
和const
在同一作用域不允许重复变量声明 否则报错xx has already been declared
修改声明的变量
var
和let
可以const
声明一个只读的常量。一旦声明,常量的值就不能改变使用
能用
const
的情况尽量使用const
,其他情况下大多数使用let
,避免使用var
es6中数组新增了哪些扩展?
拓展运算符的应用
ES6通过扩展元素符
...
将一个数组转为用逗号分隔的参数序列构造函数新增的方法
Array.from() 将两类对象转为真正的数组 ``
Array.of() 用于将一组值,转换为数组
Array.of(3, 11, 8) // [3,11,8]
实例对象新增的方法
fill() , flat() …
空值处理
ES6 则是明确将空位转为
undefined
sort()排序算法稳定性
es6中对象新增了哪些扩展?
属性的简写
属性名表达式
扩展运算符的应用
es6新增 Set 、 Map 两种数据结构的
Set
是一种叫做集合的数据结构,Map
是一种叫做字典的数据结构
什么是集合?什么又是字典?
集合
是由一堆无序的、相关联的,且不重复的内存结构【数学中称为元素】组成的组合
字典
是一些元素的集合。每个元素有一个称作key 的域,不同元素的key 各不相同
- 共同点:集合、字典都可以存储不重复的值
- 不同点:集合是以[值,值]的形式存储元素,字典是以[键,值]的形式存储
谈谈 set 、map 是什么?
- set是es6提供的一种新的数据结构,它类似于数组,但是成员的值都是唯一的
- map是es6提供的新的数据结构,它类似对象,也是键值对的集合,但是键的范围不限于字符串
ES6中 Promise的?使用场景?
Promise
,译为承诺,是异步编程的一种解决方案,比传统的解决方案(回调函数回调地狱)更加合理和更加强大
优点:链式操作减低编码难度 ,增加代码可读性
状态 promise对象仅有三种状态
- pending 进行中
- fulfilled 已成功
- rejected 已失败
用你知道的方法合并若干些对象,
- 使用
object.assign
浅拷贝
const a = {a:1,b:4};
const b = {b:2,c:3};
let obj1 = Object.assign(a,b);
console.log( obj )
拓展运算符
let obj2 = {...a,...b}