频道栏目
首页 > 程序开发 > web前端 > HTML/CSS > 正文
如何用JavaScript实现2+2=5
2018-08-10 10:33:16           
收藏   我要投稿
如何用JavaScript实现2+2=5?

我大学毕业找工作时,经常做一些稀奇古怪的面试题。这不,给大家分享一道整蛊的面试题,它其实不能算一道正式的面试题,大家可以用它来捉弄你们那些程序员朋友。

题目:如何用JavaScript实现2+2=5

答案如下。

新建一个txt文件,然后把后缀名改为.html, 再用浏览器打开。

如何用JavaScript实现2+2=5?

会先后弹出两个对话框,依次显示6,5。

但是,第二个函数f里面,明明变量H被赋成了2, 2 + 2 应该等于4才对,为什么答案是5

我们用Chrome开发者工具调试一下,看看到底有什么玄虚。

为什么函数f里有两个看起来一模一样的H,但是一个值为2,一个值为3

如何用JavaScript实现2+2=5?

到现在,肉眼已经不能帮助我们了。那么我们就请出winHex这款16进制文件编辑与磁盘编辑神奇出马。

先从百度上搜索ASCII,得知大写字母的H的十六进制编码为48.

如何用JavaScript实现2+2=5?

然后我们用WinHex打开上述代码文件,果然发现了这个48的16进制编码对应了大写H。

如何用JavaScript实现2+2=5?

同样,加号“+”的16进制编码是2B:

如何用JavaScript实现2+2=5? 如何用JavaScript实现2+2=5?

空格为20。

所以谜底在这里,加号前面肉眼看起来像大写字母H的变量“H",其实并不是H,其16进制编码为CE 97。它的值在函数f里赋为2,而大写H赋为3,2 + 3 = 5,所以弹出窗里我们看到的结果是5。

如何用JavaScript实现2+2=5?

我是一名前端开发程序员,自己整理了一份2018最全面前端学习资料,从最基础的HTML+CSS+JS到移动端HTML5到各种框架都有整理,送给每一位前端小伙伴,这里是小白聚集地,欢迎初学和进阶中的小伙伴。

\

这道题其实并没有考察JavaScript里闭包等知识点,而是一个障眼法,恶作剧。

点击复制链接 与好友分享!回本站首页
相关TAG标签 JavaScript
上一篇:http常见的状态介绍
下一篇:yield被reject的promise,如何抓错
相关文章
图文推荐
点击排行

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站