前端面试必备知识点:JavaScript基础与进阶

需积分: 9 0 下载量 22 浏览量 更新于2024-08-26 收藏 762B MD 举报
"前端面试知识点汇总" 前端面试中涉及的知识点广泛且深入,涵盖了JavaScript的基础与进阶,以及相关的框架和网络知识。以下是对这些知识点的详细解释: 1. **ES5原型链与继承**: - 原型链是JavaScript实现继承的一种方式,每个对象都有一个`__proto__`属性,它指向创建该对象的函数的原型。 - 继承可以通过`Object.create()`,构造函数或`__proto__`来实现,而`prototype`在其中起到关键作用。 2. **this指向**: - `this`在JavaScript中的值取决于它被调用的上下文,可以是全局、函数、方法、构造函数或箭头函数等。 3. **new操作符**: - `new`用于创建一个新的对象实例,并将新对象的`[[Prototype]]`链接到构造函数的`prototype`。 4. **隐式转换**: - JavaScript中的数据类型转换经常发生在操作符、条件语句或函数调用中,例如字符串与数字的混合运算。 5. **事件循环机制(macro/micro任务)**: - JavaScript的事件循环包括宏任务和微任务,它们共同构成了异步编程的基础,如`setTimeout`属于宏任务,`Promise`的`then`属于微任务。 6. **基础类型**: - JavaScript的基础类型包括`null`,`undefined`,`boolean`,`number`,`string`,`bigint`,以及ES6引入的`symbol`。 7. **数据去重/交集/并集**: - 可以使用`Set`,`filter`,`indexOf`等方法处理数组中的重复元素,交集和并集则可以通过`filter`,`some`,`reduce`等方法配合实现。 8. **判断是否为数组**: - 使用`Array.isArray()`来判断一个对象是否为数组。 9. **变量声明提升(Hoisting)**: - JavaScript会将`var`声明的变量和函数声明提升到其所在作用域的顶部。 10. **函数作用域**: - 函数内部声明的变量只在该函数内部可见,形成函数作用域,与之相对的是块级作用域,由ES6的`let`和`const`实现。 11. **节流/防抖**: - 节流限制函数执行频率,常用于处理连续的用户输入事件,如滚动事件;防抖则是在一定时间内连续触发时,只执行最后一次。 12. **apply/call**: - 这两个方法用于改变函数调用时的`this`上下文,`call`可以直接传入参数,`apply`则通过数组形式传递。 13. **JSONP跨域**: - JSONP是一种解决同源策略限制的跨域方式,通过动态插入`<script>`标签来请求服务器返回的JavaScript代码。 14. **CORS**: - CORS(Cross-Origin Resource Sharing)是一种允许浏览器向不同源的服务器发起请求的机制,通过设置HTTP头实现跨域。 15. **ES6 let/const**: - `let`和`const`引入了块级作用域,`let`可重新赋值,`const`一旦赋值不可更改。 16. **箭头函数**: - 箭头函数简化了函数声明,它的`this`值继承自外层作用域。 17. **Promise**: - Promise是异步编程的一种解决方案,代表一个可能还没有完成但最终会完成的异步操作。 18. **async/await**: - async/await使得异步代码更易读,它构建在Promise之上,提供了一种同步代码的写法。 19. **Vue源码分析**: - Vue的双向绑定、组件通信方式等是理解其工作原理的关键,这对深入学习前端框架非常有帮助。 20. **算法**: - 冒泡排序、快速排序、二叉树遍历、大数相乘等算法是前端面试中常见的问题,剑指Offer提供了很好的练习题目。 21. **网络相关**: - HTTP/2.0与1.1的区别,TCP与UDP的特性,以及cookie与session的应用场景和原理。 最后,多刷面试题、阅读源码分析博客,实践和理论结合,是提高前端面试成功率的有效途径。