typeof和instanceof
- typeof判断是否为function、number、boolean、string、undefined、object
- instanceof:判断是否为构造函数实例。即运算符用于判断构造函数的原型对象是否在对象原型链上的某个位置。
继承方式
- ES6使用extends继承,并用super调用父亲函数
- ES6之前:构造函数加原型对象模拟实现继承,称为组合继承
father.call(this,name,age)//改变指向
var baba=new father();//new一个实例
son.prototype=baba.prototype;//子类原型对象指向父类
son.prototype.constructor=son;//son的prototype的构造函数指向了父类,需要用constructor重新指回原来的构造函数。
介绍一下 js 的节流与防抖?
- 在页面中如果持续触发一个事件会对性能不利,例如页面滚动、鼠标移动等若持续触发会造成事件冗余,也为页面加载带来负担。
- 节流指的是函数在触发过了规定时间后再执行,若在规定时间内再次触发会重新计时, 再过规定时间后再执行。
- 所谓防抖,就是指触发事件后在 n 秒内函数只能执行一次,如果在 n 秒内又触发了事件,则会重新计算函数执行时间。
- 防抖动和节流本质是不一样的。防抖动是将多次执行变为最后一次执行,节流是将多次执行变成每隔一段时间执行。
事件委托
给父元素注册事件,利用事件冒泡,当子元素的事件触发,会冒泡到父元素,然后去控制相应的子元素。
js事件
- onblur:失去焦点
- onclick:用户点击
- onfocus:获得焦点
- onkeydown:键盘按下
- onkeyup:键盘抬起
- onload:页面或者图片加载完成
- onmousemove:鼠标移动
- onselect:文本选定
- onscroll:事件在元素滚动条在滚动时触发。
解析顺序
- 从右往左找
- 因为父元素可能有若干个子元素,子元素只有一个父亲,从子元素往上遍历更快。