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

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

答案如下。

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

<html><script>g = function () {H = 3return H + H}f = function () {Η = 2return Η + H}// 3 + 3 = 6alert(g())// 2 + 2 = 5alert(f())</script></html>

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

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

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

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

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

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

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

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

空格为20。

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

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

要获取更多Jerry的原创技术文章,请关注公众号"汪子熙"或者扫描下面二维码:

如何用JavaScript实现2+2=5? 1相关推荐

  1. 如何用JavaScript的回调函数做出承诺

    by Adham El Banhawy 由Adham El Banhawy 如何用JavaScript的回调函数做出承诺 (How to make a Promise out of a Callbac ...

  2. 如何用JavaScript手动实现一个栈

    什么是栈(Stack) 栈是一种遵从后进先出(LIFO)原则的有序集合. 新添加的或待删除的元素都保存在栈的末尾,称为栈顶,另一端叫栈底. 在栈里,新元素都靠近栈顶,旧元素都接近栈底 现实中的例子 在 ...

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

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

  4. 如何用javascript获取文本框,下拉框,单选框的对应值或者将值赋给它们?雪原虎 发布于:2007-10-22 00:32

    如何用javascript获取文本框,下拉框,单选框的对应值或者将值赋给它们? 雪原虎 发布于:2007-10-22 00:32 1.文本框 1.1 <input type="text ...

  5. 一步一步学Silverlight 2系列(22):在Silverlight中如何用JavaScript调用.NET代码_转载...

    概述 Silverlight 2 Beta 1版本发布了,无论从Runtime还是Tools都给我们带来了很多的惊喜,如支持框架语言Visual Basic, Visual C#, IronRuby, ...

  6. 一步一步学Silverlight 2系列(22):在Silverlight中如何用JavaScript调用.NET代码

    概述 Silverlight 2 Beta 1版本发布了,无论从Runtime还是Tools都给我们带来了很多的惊喜,如支持框架语言Visual Basic, Visual C#, IronRuby, ...

  7. 在asp.net中如何用javascript读取本地Xml中的数据到网页中的文本框?

    在asp.net中如何用javascript读取本地Xml中的数据到网页中的文本框? 转载于:https://www.cnblogs.com/dynasty/archive/2005/08/18/21 ...

  8. js 延期执行_如何用javascript设置延时执行

    152 **** **** 如何用javascript设置延时执行 一.什么叫做JavaScript 的计时事件 使用JavaScript可以实现代码的延时执行,也就是说当一个函数被调用时不立即执行某 ...

  9. 如何用javascript api for arcgis调用有参数的GP服务

    如何用javascript api for arcgis调用有参数的GP服务 javascript代码:(个别变量没有说明,大家就就看看大概思路就好了,这是我的完整代码) 1 var linesCan ...

最新文章

  1. 完胜BERT!NLP预训练利器:小模型也有高精度,单个GPU就能训练
  2. Android 实用工具Hierarchy Viewer实战
  3. chapter 01
  4. 多用户使用一台计算机可设置,2012年职称计算机考试WindowsXP选择题5
  5. js判断fck编辑器内容是否为空并获得焦点
  6. HTML里的表格不能复制粘贴,表格之间无法复制粘贴怎么办_两个EXCEL表格为什么不能复制和粘贴-win7之家...
  7. java虚拟机工作原理图_Java虚拟机工作原理
  8. The prefix p for attribute p:message associated with an element type bean
  9. Python dictionary 字典 常用法
  10. awg线径与电流_AWG电流线径对照表
  11. 影音先锋 android下载地址,影音先锋手机版-影音先锋下载v5.8.2 安卓手机版-西西软件下载...
  12. Vitis下Linux应用程序开发流程
  13. 面试 Redis 没底?这 40 道面试题让你不再慌
  14. Java常用jar包用途
  15. 思科Cisco交换机的基本模式和命令基本使用和技巧大全
  16. 科略教育—太极拳理与企业家管理理念
  17. 不小心删除JDK文件夹,无法重新安装该怎么办*
  18. PCB板常用检测方法
  19. DELL 电脑 重装系统出现 no boottable devices found
  20. 几种典型的立体匹配算法

热门文章

  1. 文献学习(part26)--Extended Comparisons of Best Subset Selection, Forward Stepwise Selection, and Lasso
  2. 第三次学JAVA再学不好就吃翔(part1)--初识JAVA
  3. 3000字详解Pandas数据查询,建议收藏
  4. 关于2019的一些想法
  5. 使用JavaScript给对象修改注册监听器
  6. SAP 电商云 Spartacus UI Quick order 产品搜索结果页面的显示逻辑
  7. SAP UI5 的本地 Fiori sandbox Launchpad
  8. 如何使用SAP C4C Repository Explorer里的BO test shell
  9. SAP 产品一脉相承的 UI 增强思路,在 SAP Commerce Cloud(电商云) UI 增强实现中的体现
  10. NgRx Store里的StoreModule.forRoot()