摘要:
1、在严格模式中一部分字符变成了保留的关键字。这些字符包括implements, interface, let, package, private, protected, public, static和yield。在严格模式下,不能再用这些名字作为变量名或者形参名。 2、禁止使用with语句 3、创 阅读全文
摘要:
宏任务:setTimeout/setImmediate 微任务:Promise 浏览器: 执行一个宏任务,执行所有微任务 node:先执行所有宏任务,再执行微任务 function test() { console.log('start') setTimeout(() => { console.lo 阅读全文
摘要:
function objectFactory(...args) { //创建实例对象 let obj = {} //构造函数取第一个参数 let constructor = args.shift() //实例对象的__proto__属性与构造函数的prototype相同 obj.__proto__ 阅读全文
摘要:
ES6引入rest参数,形式为...变量名,用于获取函数多余参数。 语法: function foo(a, b, ...args) { // ... } rest参数只能作为最后一个参数,否则会报错 function foo(a, b, ...args, c) { console.log(args) 阅读全文
摘要:
防抖(debounce) 在事件被触发n秒后再执行回调,如果在这n秒内又被触发,则重新计时 function debounce(func, delay) { let timer = null return function (...args) { if (timer) { clearTimeout( 阅读全文
摘要:
三者的对比 call、apply与bind都是用来改变this指向的。 call与apply返回结果为函数调用结果,bind返回结果为新的函数,还需要重新调用 let obj = { age: 18, getAge: function () { return this.age } } let obj 阅读全文
摘要:
instanceof 原型链查找 const arr1 = [1, 2, 3] const obj = { a: 1 } console.log(arr1 instanceof Array) //true console.log(obj instanceof Array) //false Array 阅读全文
摘要:
对于Object,==与 是没有区别的,都是对引用地址进行比较 function checkAge(data) { if (data { age: 18 }) { console.log(1) } else if (data == { age: 18 }) { console.log(2) } el 阅读全文
摘要:
函数中未定义的变量会向外层作用域进行查找,外层作用域中没有会继续向再外层查找,直到找到变量定义或者全局作用域,形成的作用域套作用域即为作用域链 面试题 var x = 10; function a(y) { var x = 20; return b(y); } function b(y) { ret 阅读全文
摘要:
推荐阅读 https://www.cnblogs.com/wangfupeng1988/p/3977924.html 每个函数都有一个protptype属性 每个对象都有一个__proto__属性 对象的__proto__属性指向构造函数的prototype属性 面试题 Function.proto 阅读全文