`
JerryWang_SAP
  • 浏览: 1030979 次
  • 性别: Icon_minigender_1
  • 来自: 成都
文章分类
社区版块
存档分类
最新评论

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

阅读更多

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

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

答案如下。

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

<html>

<script>

g = function () {

H = 3

return H + H

}

f = function () {

Η = 2

return Η + H

}

// 3 + 3 = 6

alert(g())

// 2 + 2 = 5

alert(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的原创技术文章,请关注公众号"汪子熙"或者扫描下面二维码:

 

 
 
0
0
分享到:
评论

相关推荐

    前端Javascript+Html5+后端PHP分块上传文件

    前端Javascript+Html5+后端PHP分块上传文件,PHP分块上传大文件,该项目可以正常运行,入口为index.html,...2.实现快速上传,即之前上传过,该文件已经存在的,很快就能上传成功,其原理就是文件md5+文件sha1的判断

    HTML+CSS+JavaScript+AJAX+JQuery.docx

    4. AJAX (Asynchronous JavaScript and XML):AJAX 是一种使用 JavaScript 实现异步数据交换的技术,它允许网页在不刷新整个页面的情况下与服务器进行通信。通过 AJAX,可以创建更加流畅的用户体验,比如动态加载...

    JavaScript实现页面动态验证码

    在本主题中,我们将深入探讨如何使用JavaScript实现一个页面动态验证码。验证码的主要目的是防止自动化的机器人程序对网站进行恶意操作,例如批量注册、垃圾评论等。 验证码通常包括一些随机生成的字符或数字,用户...

    使用Javascript + html + css实现显示当前时间炫酷动画

    我们将使用JavaScript的`setInterval`函数来每隔一定时间(如1秒)更新时间显示: ```javascript document.addEventListener('DOMContentLoaded', function() { var clock = document.getElementById('clock'); ...

    Javascript 试题2.doc

    a+b+c+a+b=?` - 这是一个字符串拼接问题。`+`运算符在字符串与数字之间会进行隐式转换,将数字转换为字符串。所以`a+b+c+a+b`等于`"12=12"`。 答案:b) "12=12" 3. `var arr1=new Array(5);var arr2=new Array(1,...

    基于Struts2+Hibernate5的教务管理系统项目实训

    struts2+hibernate5+MySQL 本项目只是简单模拟教务管理系统的基本功能,通过...另外,为了实现相对美观的系统页面,本项目开发过程中还使用了CSS和JavaScript技术。如果不熟悉CSS和 JavaScript技术,也可以不使用这些技术。

    JavaScript的设计缺陷1

    JavaScript的Date对象是基于Java 1.0参考实现的,但是随着Java的版本迭代,一些“有问题”的方法逐渐被抛弃,但是JS却还保留着这些问题。例如: * const d = new Date('2016-09-10'); d.getDate(); // 10 d.getYear...

    HTML+CSS+JavaScript+jQuery+Bootstrap等前端框架实现的前端案例.zip

    2. navbar:这是一个导航栏的实现,通常使用HTML结构配合CSS样式和JavaScript功能来创建响应式的导航菜单。Bootstrap框架提供了预定义的导航组件,使其易于实现水平或垂直导航,支持下拉菜单、固定定位等特性。 3. ...

    javascript实现划词标记+划词搜索功能.docx

    本文将详细介绍如何使用JavaScript实现这一功能。 #### 二、功能概述 划词标记与划词搜索功能主要分为两个部分: 1. **划词标记**:当用户在网页中选中一段文本后,该文本会被高亮显示,并自动添加标记。 2. **划词...

    【JavaScript源代码】NodeJS实现图片文本分割.docx

    i += width * 4) { if (getSumRGB(data, i) == haveRGB) { haveNum++; } } return haveNum; } ``` ##### 4. 背景清除 背景清除是文本分割中的关键步骤之一,通过这一过程可以更清晰地突出文本内容。`...

    javascript 实现复选框全选/取消功能

    本文将详细介绍如何通过JavaScript实现这一功能,并解析提供的代码片段。 #### 1. 功能概述 本功能的目标是实现一个简单的全选/取消全选功能。当用户点击一个特定的复选框时(此例中的 `checkbox2`),页面上的...

    html5+css3+javascript实现加减乘除功能

    用html5+css3+javascript实现加减乘除功能。实现一个简单的计算器。 &lt;form action=""&gt; &lt;input type="number" id="n1"&gt; &lt;select name="" id="op"&gt; &lt;option value="+"&gt;+ &lt;option value="-"&gt;- &lt;option value="*"&gt;*...

    使用HTML5、CSS3和JavaScript实现简易四则运算

    在本项目中,我们将探讨如何使用HTML5、CSS3和JavaScript技术来创建一个简单的四则运算计算器。这个计算器能够执行基本的加法、减法、乘法和除法操作,对于初学者来说是一个很好的实践项目,它能帮助理解前端开发的...

    用javascript做简单扑克牌

    使用JavaScript实现简单扑克牌游戏 本文将介绍如何使用JavaScript实现简单的扑克牌游戏,包括随机发牌和斗地主游戏的实现。 一、使用JavaScript实现扑克牌游戏的基本思想 使用JavaScript实现扑克牌游戏的基本思想...

    网页设计与制作教程(HTML+CSS+JavaScript)第2版+电子教案、素材文件、源代码

    本教程《网页设计与制作教程(HTML+CSS+JavaScript)第2版》由刘瑞新和张兵义主编,是一份全面的学习资源,旨在帮助初学者和进阶者掌握网页设计的核心技术。这个压缩包包含了完整的教材、电子教案、素材文件以及源...

    jquery和纯javaScript实现的客户端验证

    本主题将探讨如何使用jQuery和纯JavaScript实现客户端验证,包括图片轮换、Tab切换、图片上下滚动以及表单验证。 首先,jQuery是一个轻量级的JavaScript库,它使得JavaScript的使用更加简洁和高效。在图片轮换功能...

    Pythonrange函数的一个JavaScript实现

    "Python range() 函数的一个JavaScript实现"这个主题,正是探讨如何在 JavaScript 中实现类似 Python 的 `range()` 功能。 Python 的 `range()` 函数是一个非常有用的工具,它用于生成一个整数序列,通常用于循环...

    javascript循环

    以上就是根据给定的题目要求,使用JavaScript实现的一系列示例代码。这些代码涵盖了循环的基本应用,包括求和、判断质数、斐波那契数列计算以及简单的数学问题解决。希望这些示例能够帮助你更好地理解和掌握...

    以下是使用JavaScript实现简单线性回归分析的示例代码:

    以下是使用JavaScript实现简单线性回归分析的示例代码:使用该函数,可以传入两个数组作为参数,返回它们的回归系数b1和截距b0。例如: javascript Copy code const xArr = [1, 2, 3, 4, 5]; const yArr = [5, 4, 3...

    HTML+CSS+JavaScript网页制作案例教程(第2版)-教学大纲.zip

    JavaScript是实现网页交互性的关键,教学大纲会涵盖变量、数据类型、控制流、函数等基础语法,以及DOM操作、事件处理、Ajax异步通信等高级话题。学生将学习如何编写能够响应用户行为的脚本,创建动态效果和交互式...

Global site tag (gtag.js) - Google Analytics