1.变量let,const,var区别
let和const不会存在变量提升,暂时性死区
var全局声明,会存在暂时性死区
2.class类的继承
**关键字extends**
Class poiont{ }
Class Colors extends poiont{ }
Colors继承了poiont的方法
**Object.getPrototypeOf() //可以用来从子类上获取父类**
**super()关键字**
可当函数使用 当函数调用代表父类的构造函数,ES6规定子类构造函数必须执行一次super()
也可当对象使用
3.数组
数组中哪些会改变原型方法,哪些不会
**改变的:**
push(): 像数组后加入,
pop():删除数组最后一项,
shift():删除数组第一项,
unshift():将数组添加到原数组开头,
sort():将数组按升序排列,比较的是字符串,对number没用,
reverse():反转数组,
splice():起始,删除,插入
**未改变的:**
concat():连接字符串,
slice():提取字符串片段,
join():加入如arr.join("-")
indexOf():某个字符串首次出现的位置
lastIdexOf(), 从后向前搜索字符串
ForEach(),
map(),
filter():过滤,
every():判断数组中每一项是否满足条件,
some():判断数组中是否有满足条件的项,
reduce():迭代相加数组所有项。返回值,
reduceRight():和reduce同理,从有向左
4.选择器有哪些,哪些属性可以继承,和!import优先级哪个高
标签选择器
类选择器
id选择器
子类选择器
包含选择器
兄弟选择器
相邻兄弟选择器
全局选择器
群选择器
属性选择器
伪类选择器
**可继承:**
font-size fontfamily color
**不可继承**
border padding margin width height
**优先级**
!import >内联>id>类>标签选择器>通配符>继承>浏览器属性
5.解释盒子模型
标准盒子模型:content不包含其他成分
content+padding+border+margin
IE盒子模型:
content=padding+border+本身
6.打印数据类型
正常Function、String、Number、Undefined
typeof()
数组和字符串,打印出来都是Object所以
方法一
toString.call()
方法二
Array.isArray([]) // true
Array.isArray({}) // false
7.深拷贝和浅拷贝
参考文章:https://blog.csdn.net/jiang7701037/article/details/98738487
建议观看参考文章,更好理解
主要考察对引用类型理解的深度,针对对象
所谓拷贝就是赋值,把一个变量赋值给另外一个变量(拷贝一份),把一个对象赋值给另外一个对象(拷贝一份)
基本类型:赋的是数据所以不存在深拷贝浅拷贝
引用类型:浅拷贝举例
var arr1 = new Array(12,23,34)
Var arr2 = arr1;
深拷贝_如果属性是数组等非键值对的对象,单独处理:要么给数组增加一个自我复制的函数(建议这样做),要么单独判断。
8.重绘和回流
参考文章:https://www.jianshu.com/p/e081f9aa03fb
浏览器把所有html解析为一个DOM数,刚加载的时候,或者因为数据,div大小改变布局会进行回流。
在DOM树中只改变一些外观,比如background-color,会重绘
回流必将重绘。重绘不一定会回流
9.关于this指向以及apply(),call(),bind() ,区别
参考链接:添加链接描述
1.默认绑定指向window
2.隐式绑定谁调用指向谁如:
const obj = {
name:'joy',
getName(){
console.log(this); //obj
console.log(this.name); //joy
}
};
3.链式调用看最后那个
4.app(), call()改变this指向绑定即是调用,改变This指向。bind()会返回绑定之后的函数,需要的时候进行调用。
fn.apply(this,[1,2]); //不管多少个,都用数组包裹传参
fn.call(this,1,2); //一个个参数列出来传
5.箭头函数:调用前this是什么,函数里边就是什么。
五种this绑定优先级
箭头函数 > new > 显式 > 隐式 > 默认绑定
10.箭头函数的好处。
写代码拥有更加简洁的语法;
不会绑定this:
原生this指向调用者,箭头函数this指向定义时的那个对象。如果有对象嵌套情况绑定在最近一层对象上。
11.数组去重实现
参考链接https://www.jb51.net/article/118657.htm
12.闭包
闭包三特性:
函数嵌套函数
函数内部可以引用外部的参数和变量
参数和变量不会被垃圾回收机制所回收
弊端:增大了内存消耗,造成内存泄漏,解决方法是可以在使用完变量后手动为它赋值为null
推荐!!!添加链接描述
13.js继承
你知道哪些讲述出来:添加链接描述
14…扩展运算符
用于取出参数对象中的所有可遍历属性,拷贝到当前对象之中