10个 JavaScript 变态题解析
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
10个JavaScript 变态题解析
——动力节点java
今天有参加面试的同学,发给了动宝儿10个超级变态面试题,说是让我也感受一下这个酸爽,动宝儿想,独乐乐不如众乐乐,分享给大家感受一下。
第1题
答案还是111111111111111110000. 解释是Lack of precision for numbers in JavaScript affects both small and big numbers.但是笔者不是很明白……………. 请读者赐教!
第2题
这个题有意思!
知识点:
Array/reverse
The reverse method transposes the elements of the calling array object in place,
mutating the array, and returning a reference to the array.
也就是说最后会返回这个调用者(this), 可是x 执行的时候是上下文是全局. 那么最后返
回的是window.
答案是window
第3题
true
第4题
这个题也还可以.
这个题会让人误以为是2 > 1 && 2 < 3其实不是的.
这个题等价于
答案是[true, true]
第5题
这个题我是猜的. 我猜的true, 至于为什么…..
both objects get converted to strings and in both cases the resulting string is "2"我不能信服…
第6题
这个题也挺逗, 我做对了答案是error, '3', error
你如果换一个写法就更费解了
这个答案就是'3';
为啥呢?
因为在js 中1.1, 1., .1都是合法的数字. 那么在解析3.toString的时候这个.到底是属于这个数字还是函数调用呢? 只能是数字, 因为3.合法啊!
第7题
答案是1, error
y 被赋值到全局. x 是局部变量. 所以打印x 的时候会报ReferenceError
第8题
即使正则的字面量一致, 他们也不相等.
答案false, false
第9题
字面量相等的数组也不相等.
数组在比较大小的时候按照字典序比较
答案false, false, false, true
第10题
知识点:
Object/getPrototypeOf
只有Function 拥有一个prototype 的属性. 所以a.prototype为undefined.
而Object.getPrototypeOf(obj)返回一个具体对象的原型(该对象的内部[[prototype]]值)
答案false, true