冴羽

Results 473 comments of 冴羽

第七条 `(10)["toString"]() === "10"` 写成 `10..toString() === "10"` 更显装逼~

我来补充一个"i love you": ```js [[][0] + []][0][5]+[[][[[][0] + []][0][4]+[[][0] + []][0][5]+[[][0] + []][0][1]+[[][0] + []][0][2]] + []][0][8]+[[[] == []][0] + []][0][2]+[[][[[][0] + []][0][4]+[[][0] + []][0][5]+[[][0] + []][0][1]+[[][0] + []][0][2]] +...

然而有点兼容性问题,只限在 Chrome 哈~ 😂😂😂 火狐就变成其他意思了……

好多不会……压力好大 ╮(╯▽╰)╭

作为一道面试题,我觉得重要的是要讲出一点其他人一般不会答出来的深度。像这道题,可以从原理和解决方案两个地方作为答题点,最好在编一个案例。大致讲自己遇到过这个问题,于是很好奇深入研究了一下,发现是浮点数精度导致……原理怎样怎样……然后又看了业界的库的源码,然后怎样怎样解决。 关于原理,我专门写了一篇文章 https://github.com/mqyqingfeng/Blog/issues/155 来解释,实际回答的时候,我觉得答出来 1. 非是 ECMAScript 独有 2. IEEE754 标准中 64 位的储存格式,比如 11 位存偏移值 3. 其中涉及的三次精度丢失 就已经 OK 了。 再讲解决方案,这个可以直接搜索到,各种方案都了解一下,比较一下优劣,还可以参考业界的一些库的实现,比如 math.js,不过相关的我并没有看过,后面我会研究一下。 如果还有精力的话,可以从加法再拓展讲讲超出安全值的数字的计算问题。 所以我觉得一能回答出底层实现,二能回答出多种解决方案的优劣,三能拓展讲出 bignum 的问题,就是一个非常完美的回答了。

所有页面公用一个评论

赞, (๑•̀ㅂ•́)و✧,期待下一篇~

@hujiulong 最近在准备 React 系列的内容,正好就搜到了这里来,多多交流哈,接下来可能会叨扰你一些问题呀 😀