面试整理一(持续更新中...)

275 阅读2分钟
  • undefined 和 null 有什么区别?
  • && 运算符能做什么
  • || 运算符能做什么
  •  DOM 是什么?
  • 什么是事件传播?
  • 什么是事件冒泡?
  • 什么是事件捕获?
  • event.preventDefault() 和 event.stopPropagation()方法之间有什么区别?
  • 如何知道是否在元素中使用了event.preventDefault()方法?
  • 为什么此代码obj.someprop.x会引发错误?
  • 什么是event.target?
  • 什么是event.currentTarget?
  • == 和 === 有什么区别?
  • 为什么在 JS 中比较两个相似的对象时返回 false?
  • !! 运算符能做什么?
  • 如何在一行中计算多个表达式的值?
  • 什么是提升?
  • 什么是作用域?
  • 什么是闭包?
  • JavaScript中的虚值是什么?
  • 如何检查值是否虚值?
  • JavaScript中 this 值是什么?
  •  对象的 prototype 是什么?
  • Function.prototype.apply方法的用途是什么?
  • Function.prototype.call方法的用途是什么?
  • Function.prototype.apply 和 Function.prototype.call 之间有什么区别?
  • Function.prototype.bind的用途是什么?
  • 什么是函数式编程? JavaScript的哪些特性使其成为函数式语言的候选语言?
  • 什么是高阶函数?
  • 为什么函数被称为一等公民?
  • 手动实现`Array.prototype.map`方法
  • 手动实现`Array.prototype.filter`方法
  • 手动实现`Array.prototype.reduce`方法
  • arguments 的对象是什么?
  • 如何创建一个没有 prototype(原型) 的对象?
  • 为什么在调用这个函数时,代码中的`b`会变成一个全局变量?
  • 什么是类?
  • 什么是模板字符串?
  • 什么是对象解构?
  • 什么是箭头函数?
  • 什么是`Set`对象,它是如何工作的?
  • 什么是回调函数?
  • Promise 是什么?
  • 什么是 `async/await` 及其如何工作?
  • 展开运算符和Rest运算符有什么区别?
  • 什么是默认参数?
  • 什么是包装对象(wrapper object)?
  • 隐式和显式转换有什么区别?
  • 什么是NaN?以及如何检查值是否为 NaN?
  • 如何判断值是否为数组?
  • 如何在不使用`%`模运算符的情况下检查一个数字是否是偶数?
  • 如何检查对象中是否存在某个属性?
  • 如何在JavaScript中创建对象?
  • Object.seal 和 Object.freeze 方法之间有什么区别?
  • 对象中的 in 运算符和 hasOwnProperty 方法有什么区别?
  • 有哪些方法可以处理javascript中的异步代码?
  • 函数表达式和函数声明之间有什么区别?
  • 调用函数,可以使用哪些方法?
  • 什么是缓存及它有什么作用?
  • 手动实现缓存方法
  • 为什么typeof null返回 object?如何检查一个值是否为 null?
  • new 关键字有什么作用?
  • 模拟一个new
  • 什么时候不使用箭头函数? 说出三个或更多的例子?
  • Object.freeze() 和 const 的区别是什么?
  • 如何在 JS 中“深冻结”对象?
  • `Iterator`是什么,有什么作用?
  • `Generator` 函数是什么,有什么作用?
  • [1,2,3,4,5,6]; [1,2,3,7,8,9];查找两个对象的交集。
  • ’aabbccdda‘ 查找值里面每个字母出现的次数