总结
为了帮助大家更好温习重点知识、更高效的准备面试,特别整理了《前端工程师面试手册》电子稿文件。
内容包括html,css,JavaScript,ES6,计算机网络,浏览器,工程化,模块化,Node.js,框架,数据结构,性能优化,项目等等。
包含了腾讯、字节跳动、小米、阿里、滴滴、美团、58、拼多多、360、新浪、搜狐等一线互联网公司面试被问到的题目,涵盖了初中级前端技术点。
前端面试题汇总
开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】
JavaScript
性能
linux
有关Object.defineProperties()的具体细节请看我的这篇文章:[戳我传送](https://bbs.csdn.net/topics/618166371)
Object.create 返回值:一个新对象,带着指定的原型对象及其属性。
**使用Object.create(null)的原因**
很多框架源码作者使用它来初始化一个新的对象,难道是最佳实践?
>
> 通过Object.create(null)创建出来的对象,没有任何属性,显示No properties。我们可以将其当成一个干净的 map 来使用,自主定义 toString,hasOwnProperty等方法,并且不必担心将原型链上的同名方法被覆盖。
>
>
>
**注意:** {...}创建的对象,使用for in遍历对象的时候,会遍历原型链上的属性,带来性能上的损耗。使用Object.create(null)则不必再对其进行遍历了。
框架源码对性能的要求极高,哪怕是一点点,都值得关注。
## 开始手写
// 第一个参数传递null时,返回的实例原型为null
// 第一个参数类型只能是object、function或者null,否则报错。
// 第二个参数类型,不能是null,否则报错
// 第二个参数如果不为 undefined ,需要将其挂载到实例的 Object.defineProperties 上。
Object.mjy_create = function(proto, defineProperties) {
if ( typeof proto !== ‘object’ && typeof proto !== ‘function’ ) {
throw new TypeError(Object prototype may only be an Object or null: ${proto}
)
}
if ( defineProperties === null ) {
throw new TypeError(‘Cannot convert undefined or null to object’)
}
// 定义新对象
const obj = {}
// 设置原型
// obj.__proto__ = proto // 不建议这么做了
// 通常,应该使用 Object.setPrototypeOf() 方法来设置对象的原型。
// 因为 Object.prototype.__proto__ 访问器已被弃用。
Object.setPrototypeOf(obj, proto) // 建议使用setPrototypeOf设置原型
if ( defineProperties !== undefined ) {
Object.defineProperties(obj, defineProperties)
}
return obj
}
let obj1={b:2}
let obj2 = Object.mjy_create(obj1, { a: { enumerable: false } })
console.log(obj2)//{}
let obj2_ = Object.mjy_create(obj1, { a: { enumerable: true } })
console.log(obj2_)//{ a: undefined }
let obj3 = Object.create(‘222’, undefined) // TypeError: Object prototype may only be an Object or null: 222
let obj4 = Object.create(obj1, null) // TypeError: Cannot convert undefined or null to object
console.log(obj2.a) // undefined
## 给大家推荐一个实用面试题库
#### **1、前端面试题库 (**面试必备) ****推荐:★★★★★****
### 总结
为了帮助大家更好温习重点知识、更高效的准备面试,特别整理了《前端工程师面试手册》电子稿文件。
内容包括html,css,JavaScript,ES6,计算机网络,浏览器,工程化,模块化,Node.js,框架,数据结构,性能优化,项目等等。
包含了腾讯、字节跳动、小米、阿里、滴滴、美团、58、拼多多、360、新浪、搜狐等一线互联网公司面试被问到的题目,涵盖了初中级前端技术点。
![](https://i-blog.csdnimg.cn/blog_migrate/8174e3fb301b20f2bd0722181a16cbbe.png)
![](https://i-blog.csdnimg.cn/blog_migrate/f2477d2817dbbd9536dcec7a21447dbb.png)
**前端面试题汇总**
![](https://i-blog.csdnimg.cn/blog_migrate/0e3e725c2b52c0d80cc380a18efe5fd9.png)
**[开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】](https://bbs.csdn.net/topics/618166371)**
**JavaScript**
![](https://i-blog.csdnimg.cn/blog_migrate/9320ddadc20aa9901f6059017c06bce9.png)
**性能**
![](https://i-blog.csdnimg.cn/blog_migrate/80f436616b3456a1e3fabb96c355d408.png)
**linux**
![](https://i-blog.csdnimg.cn/blog_migrate/9ddd13c78eef6f7bdd7d52f641a2ff76.png)