常用知识点

278 阅读1分钟

原型

每个函数对象都有一个prototype 属性,这个属性指向函数的原型对象
所有引用类型,它的’_ _ proto_ _'属性指向它的构造函数的’prototype’属性
    var a = []
    a.__proto__ === Array.prototype
    a.__proto__.__proto__ === Object.prototype
    Object.prototype.__proto__ === null
    Array.prototype.constructor === Array
    Array.prototype.__proto__ === Object.prototype
    
    var a = Object.creat(b) // a的原型为b
    var obj = { name: 1 }
    var f = Object.create(obj)
    f.name // 1

####闭包

定义: 函数就是闭包 = 能够访问另一个函数内部的变量的函数。
function a () {
    var b = 0
    return function () {
        console.log(++b)
    }
}
var b = a()
b() // 1

防抖与节流

防抖: 事件在n秒后触发,如果n秒之内再次触发,重新计算触发事件。
节流: 高频事件在n秒内只执行一次,时间之内多次触发无效。

apply call bind 区别

fun.apply(thisObj, [args]) // 立即执行
fun.call(thisObj, ...args) // 立即执行
fun.bind(thisObj, ...args) // 返回函数,不会立即执行

隐式转换 + ==

// 布尔类型转化为number , 对象valueOf toString
true == 1
[] == !{}
[] + {}
{} + {}
{} + 1