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

简介: 如何用JavaScript实现2+2=5?

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


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


答案如下。


新建一个txt文件,然后把后缀名改为.html, 再用浏览器打开。image.pngimage.png会先后弹出两个对话框,依次显示6,5。

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

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

为什么函数f里有两个看起来一模一样的H,但是一个值为2,一个值为3?image.png到现在,肉眼已经不能帮助我们了。那么我们就请出winHex这款16进制文件编辑与磁盘编辑神奇出马。

先从百度上搜索ASCII,得知大写字母的H的十六进制编码为48.image.png然后我们用WinHex打开上述代码文件,果然发现了这个48的16进制编码对应了大写H。image.png同样,加号“+”的16进制编码是2B:image.pngimage.png空格为20。

所以谜底在这里,加号前面肉眼看起来像大写字母H的变量“H",其实并不是H,其16进制编码为CE 97。它的值在函数f里赋为2,而大写H赋为3,2 + 3 = 5,所以弹出窗里我们看到的结果是5。image.png这道题其实并没有考察JavaScript里闭包等知识点,而是一个障眼法,恶作剧。


相关文章
|
存储 前端开发 JavaScript
JavaScript 基础(5) - 笔记
JavaScript 是 Web 的编程语言。 所有现代的 HTML 页面都可以使用 JavaScript。 学习从初级到高级 JavaScript 知识。
227 2
|
存储 前端开发 JavaScript
JavaScript 基础(3) - 笔记
JavaScript 是 Web 的编程语言。 所有现代的 HTML 页面都可以使用 JavaScript。 学习从初级到高级 JavaScript 知识。
69 1
|
JavaScript 前端开发 Serverless
JavaScript 基础(4) - 笔记
JavaScript 是 Web 的编程语言。 所有现代的 HTML 页面都可以使用 JavaScript。 学习从初级到高级 JavaScript 知识。
79 1
|
存储 JavaScript 前端开发
JavaScript 基础(2) - 笔记
avaScript 是 Web 的编程语言。 所有现代的 HTML 页面都可以使用 JavaScript。 学习从初级到高级 JavaScript 知识。
124 1
|
存储 JavaScript 前端开发
JavaScript基础第01天笔记(下)
JavaScript基础第01天笔记(下)
137 0
JavaScript基础第01天笔记(下)
|
JavaScript 前端开发 Windows
JavaScript基础第03天笔记(一)
JavaScript基础第03天笔记
117 0
JavaScript基础第03天笔记(一)
|
存储 JavaScript 前端开发
JavaScript基础第04天笔记(二)
JavaScript基础第04天笔记(二)
110 0
JavaScript基础第04天笔记(二)
|
存储 JavaScript 前端开发
JavaScript基础第05天笔记(二)
JavaScript基础第05天笔记
111 0
JavaScript基础第05天笔记(二)
|
JavaScript 前端开发 开发者
JavaScript基础第02天笔记
JavaScript基础第02天笔记
168 0
JavaScript基础第02天笔记
|
存储 JavaScript 前端开发
JavaScript基础第04天笔记(一)
JavaScript基础第04天笔记
107 0
JavaScript基础第04天笔记(一)