
获得徽章 0
赞了这篇文章
赞了这篇文章
赞了这篇文章
赞了这篇文章
赞了这篇文章
赞了这篇文章
赞了这篇文章
赞了这篇文章
赞了这篇文章
赞了这篇文章
赞了这篇文章
赞了这篇沸点
面试小知识:大家肯定知道 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
});
```
第一个: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
10
赞了这篇沸点
前端?
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吗,你对微前端怎么看?有实战经验吗?
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
7