常见前端面试题04
使下面输出1
解答思路
我们想要a取一个东东,来让下面的条件成立,我们必须要明白数据的隐式转换。
- 对象 == ’123‘, 先调用对象的toString()转化成字符串,然后再看需要等于的类型是否转化成数值。
- undefined == null 为真
- NAN == NAN 是恒为假的
知道了上面的隐式转化过程,我们可以利用数据的劫持,或者重写隐式转化种调用的函数来达到,我们读取一个变量的值,获取不同结果的目的。
方法一:generator生成器
var a={
toString = function*(){
yield 1;
yield 2;
yield 3;
}
}
方法二: a.toString
会转换,规则:
对象字符串 对象.toString
nullundefined 相等 但是和其他值不相等
NaN!=NaN
剩下的都转换成数字
方法三:数据劫持
方法四:es6的proxy代理
方法五:利用数组的shift方法
感谢您花时间阅读此篇文章,如果您觉得看了这篇文章之后心情还比较高兴,可以打赏一下,请博主喝上一杯咖啡,让博主继续码字……
本文版权归作者和博客园共有,来源网址:https://blog.csdn.net/weixin_46498102 欢迎各位转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接