返回

JavaScript 前端面试题总结(一)

前端

双等与三等

  • 双等会自动强制转换,有风险,可能导致意外结果。
  • jQuery源码中推荐使用三等,可避免自动转换带来的问题。
  • 个人建议也使用三等,更安全。

作用域链

  • 作用域链:一个自由变量一直往上寻找(定义时的)父级作用域内的变量的过程。
  • 自由变量:在函数内部使用函数外部定义的变量。
  • 作用域链是用来解决自由变量访问问题的一种机制。

单线程

  • JS引擎、事件触发器、定时触发器都是单线程的。
  • 单线程意味着JS代码是顺序执行的,不会同时执行多条代码。
  • 任务队列:JS分为同步任务和异步任务,一旦执行完同步任务,就会执行任务队列中的异步任务。

事件循环

  • 事件循环:JS引擎不断从任务队列中获取任务并执行的过程。
  • 事件循环确保了JS代码能够顺序执行,不会同时执行多条代码。
  • 事件循环是JS运行机制的核心。

闭包

  • 闭包:函数访问其定义时所在作用域中的变量,即使该函数被调用时已经离开了该作用域。
  • 闭包可以用来实现一些特殊的功能,如私有变量和延迟执行。
  • 闭包也是JS中一个重要的概念,理解闭包对于理解JS的运行机制非常重要。

原型链

  • 原型链:每个对象都有一个原型对象,原型对象也是一个对象,也有一个原型对象,如此递归下去,直到原型对象为null。
  • 原型链是用来解决对象继承问题的一种机制。
  • 原型链可以用来访问父级对象中的属性和方法。

this

  • this指向当前执行代码的对象。
  • this关键字是JS中一个很重要的概念,理解this关键字对于理解JS的运行机制非常重要。
  • this关键字的值由调用方式决定。

箭头函数

  • 箭头函数:一种新的函数语法,简化了函数的定义。
  • 箭头函数没有自己的this关键字,箭头函数中的this关键字指向父级作用域中的this关键字。
  • 箭头函数不能使用arguments对象,箭头函数中的arguments对象指向父级作用域中的arguments对象。

模板字符串

  • 模板字符串:一种新的字符串语法,使得字符串拼接更加方便。
  • 模板字符串可以使用表达式,表达式结果会插入到字符串中。
  • 模板字符串可以使用多行字符串,多行字符串不会自动换行。

解构赋值

  • 解构赋值:一种新的赋值语法,可以将对象或数组的属性值一次性赋值给多个变量。
  • 解构赋值可以简化代码,提高代码可读性。
  • 解构赋值可以用于对象和数组。

扩展运算符

  • 扩展运算符:一种新的运算符,可以将数组或对象的元素展开为一个列表。
  • 扩展运算符可以用于函数参数、数组合并和对象合并。
  • 扩展运算符可以简化代码,提高代码可读性。

结语

以上是前端面试题总结(一)的部分内容,希望对读者有所帮助。后续将继续更新更多面试题总结,敬请期待。