1.数组是对象(深浅拷贝分清楚)
2.let和var的相同点
在全局声明的变量是全局变量,在局部声明的变量是局部变量
3.let与var不同点(let声明的变量,有块作用域)
(1)let声明的变量不能重复声明
(2)let声明的变量不能提升
(3)let声明的变量只在当前块作用域中有效(大括号)
(4)let声明的变量会产生暂时性死区,只在当前作用块中查找
4.const
(1)用const声明的变量是常量,不能改变
(2)const声明的变量必须赋初值
(3)const声明的变量不能重复声明
(4)const声明的变量不能提升
(5) const声明的变量只在当前块作用域中有效
(6)const声明的变量会产生暂时性死区,只在当前作用域中查找
5.什么是解构赋值(将数组中的元素,字符串中的字符串,对象中的对象,分解为单个的变量)
数组的解构赋值
(1)不完全解构
(2)可以赋初值
(3)可以嵌套
对象的解构赋值
(1)对象的结构赋值必须和对象的属性名保持一致
(2)不完全解构
(3)可以交换位置
(4)可以赋初值
(5)可以嵌套
6.解构赋值的作用
(1)交换变量
(2)函数的返回值返回多个变量
(3)解决形参undefined的问题
7.字符串的用法
模板字符串: `` (表达式 函数调用 变量)
repeat():将目标字符串重复n次,返回一个新字符串,并且不影响目标字符串
includes():判断字符串中是否含有指定子字符串,有是true,没有是false
任何字符串都有空字符串
includes(a,b)后面那个参数是,从索引开始查找
startsWith():判断指定字符串是否出现在开头位置,第二个参数是索引开始位置
endsWith():判断制定字符串是否出现在结束位置,第二个参数是查看字符串的多少位
String.raw:直接拼接模板字符串,作用是将转义字符的效果清除,当作文本处理
8.数组的用法
Array.of()将一组值转化为数组
Array.from()将伪数组转化为真正的数组{class获取的或者字符串}
实现深拷贝
find()函数,用法相当于some():找出数组中符合条件的第一个元素{无返回undefined}
findIndex()函数:找出数组中符合条件的 第一个元素的索引{无返回-1}
fill()函数:用指定的值填充指定数组,会改变原数组
fill(‘填充的元素’,开始填充的索引,结束的索引)包括开始,不包括结束
entries():对数组的键值对进行遍历,返回一个遍历器,可以用for..of对其进行遍历
键值对:key value(双重循环)
keys():for..of遍历
values():for..of遍历
//实现深拷贝
var arr3 = [1,2,3];
var arr4 = Array.from(arr3);
arr4.push(10);
console.log(arr4);
9.es5和es6区别:
1、es6新增了箭头函数,es5没有;
2、ES6中新增了块级作用域,es5没有;
3、ES6引入Class概念,不再像ES5一样使用原型链实现继承;
4、ES6中可以设置默认函数参数,es5不行;
5、ES6中新增了promise特性
10.深拷贝的方法
for循环
slice
concat
Array.from
...