返回
JavaScript 前端面试题总结(一)
前端
2023-09-23 12:46:41
双等与三等
- 双等会自动强制转换,有风险,可能导致意外结果。
- jQuery源码中推荐使用三等,可避免自动转换带来的问题。
- 个人建议也使用三等,更安全。
作用域链
- 作用域链:一个自由变量一直往上寻找(定义时的)父级作用域内的变量的过程。
- 自由变量:在函数内部使用函数外部定义的变量。
- 作用域链是用来解决自由变量访问问题的一种机制。
单线程
- JS引擎、事件触发器、定时触发器都是单线程的。
- 单线程意味着JS代码是顺序执行的,不会同时执行多条代码。
- 任务队列:JS分为同步任务和异步任务,一旦执行完同步任务,就会执行任务队列中的异步任务。
事件循环
- 事件循环:JS引擎不断从任务队列中获取任务并执行的过程。
- 事件循环确保了JS代码能够顺序执行,不会同时执行多条代码。
- 事件循环是JS运行机制的核心。
闭包
- 闭包:函数访问其定义时所在作用域中的变量,即使该函数被调用时已经离开了该作用域。
- 闭包可以用来实现一些特殊的功能,如私有变量和延迟执行。
- 闭包也是JS中一个重要的概念,理解闭包对于理解JS的运行机制非常重要。
原型链
- 原型链:每个对象都有一个原型对象,原型对象也是一个对象,也有一个原型对象,如此递归下去,直到原型对象为null。
- 原型链是用来解决对象继承问题的一种机制。
- 原型链可以用来访问父级对象中的属性和方法。
this
- this指向当前执行代码的对象。
- this关键字是JS中一个很重要的概念,理解this关键字对于理解JS的运行机制非常重要。
- this关键字的值由调用方式决定。
箭头函数
- 箭头函数:一种新的函数语法,简化了函数的定义。
- 箭头函数没有自己的this关键字,箭头函数中的this关键字指向父级作用域中的this关键字。
- 箭头函数不能使用arguments对象,箭头函数中的arguments对象指向父级作用域中的arguments对象。
模板字符串
- 模板字符串:一种新的字符串语法,使得字符串拼接更加方便。
- 模板字符串可以使用表达式,表达式结果会插入到字符串中。
- 模板字符串可以使用多行字符串,多行字符串不会自动换行。
解构赋值
- 解构赋值:一种新的赋值语法,可以将对象或数组的属性值一次性赋值给多个变量。
- 解构赋值可以简化代码,提高代码可读性。
- 解构赋值可以用于对象和数组。
扩展运算符
- 扩展运算符:一种新的运算符,可以将数组或对象的元素展开为一个列表。
- 扩展运算符可以用于函数参数、数组合并和对象合并。
- 扩展运算符可以简化代码,提高代码可读性。
结语
以上是前端面试题总结(一)的部分内容,希望对读者有所帮助。后续将继续更新更多面试题总结,敬请期待。