获得徽章 0
前端Bug开发工程师 @enmonster
前端Bug开发工程师 @enmonster
前端Bug开发工程师 @enmonster
前端Bug开发工程师 @enmonster
赞了这篇沸点
面试小知识:大家肯定知道 Vue 中使用 Object.defineProperty 来对我们写的数据进行拦截,进而实现双向绑定。但是 Object.defineProperty 还有一些地方也会被考察到。
第一个:const 创建的变量不能被修改指针,如果让你用 es5 实现,你会怎么实现?其实就是间接在考察你对 Object.defineProperty 的理解。
```
var _const = function (data, value) {
Object.defineProperty(window, data, {
enumerable: false,
configurable: false,
get: function() {
return value;
},
set: function(v) {
if (v !== value) {
throw Error('xxx.')
} else {
return value;
}
}
})
}
```
第二个:ES6 新增了 Object.is 方法来解决 ES5 中 ==、=== 存在的问题(前者类型转变,后者不能判断 NaN 是否等于 NaN 以及误判 -0 等于 +0)。Object.is 用来比较两个值是否严格相等,与严格比较运算符(===)的行为基本一致。不同之处只有两个:一是 +0 不等于 -0 ,二是 NaN 等于自身。
如果让你用 es5 实现 Object.is ,你会怎么实现?其实也是在间接考察你对 Object.defineProperty 的理解。
```
Object.defineProperty(Object, 'is', {
value: function(x, y) {
if (x === y) {
return x !== 0 || 1 / x === 1 / y;
}
return x !== x && y !== y;
},
configurable: true,
enumerable: false,
writable: true
});
```
展开
1
赞了这篇沸点
前端?
1、你会react吗?能说说某某原理吗?你有大项目实践经验吗?
2、你会vue和vue3吗?能说xx和yy的不同吗?有大项目实践经验吗?
3、你会iOS或者安卓吗?有实战经验吗?
4、你会react native和flutter,以及实战经验吗?
5、你有PC管理平台和移动APP以及小程序、桌面端吗,项目实战经验吗?
6、你有使用uni app或者traro开发过大型项目没有?
7、你是全栈工程师吗?用过koa2和express没有?
8、做过服务端渲染没有?用过next.js和nest.js没有?
9、你用过那个数据库?你了解应用层?传输层……
10、你算法怎么样?说说xx算法……
11、你有几年架构师经验?你有几年管理经验?带过几个人?……
你懵逼了?你们到底招什么岗位?你们公司的技术栈到底是什么?
对了你写过组件库没有?你会java吗,你对微前端怎么看?有实战经验吗?
展开
14
下一页