我大学毕业找工作时,经常做一些稀奇古怪的面试题。这不,给大家分享一道整蛊的面试题,它其实不能算一道正式的面试题,大家可以用它来捉弄你们那些程序员朋友。
题目:如何用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的原创技术文章,请关注公众号"汪子熙"或者扫描下面二维码:
相关推荐
5.2 使用JavaScript脚本控制媒体播放 141 5.3 事件监听 144 5.4 track元素 146 5.5 本章小结 149 第6章 级联样式单与CSS选择器 150 6.1 样式单概述 151 6.2 CSS样式单的基本使用 152 6.3 CSS选择器 158 6.4...
struts2+hibernate5+MySQL 本项目只是简单模拟教务管理系统的基本功能,通过...另外,为了实现相对美观的系统页面,本项目开发过程中还使用了CSS和JavaScript技术。如果不熟悉CSS和 JavaScript技术,也可以不使用这些技术。
用html5+css3+javascript实现加减乘除功能。实现一个简单的计算器。 <form action=""> <input type="number" id="n1"> <select name="" id="op"> <option value="+">+ <option value="-">- <option value="*">*...
前端Javascript+Html5+后端PHP分块上传文件,PHP分块上传大文件,该项目可以正常运行,入口为index.html,...2.实现快速上传,即之前上传过,该文件已经存在的,很快就能上传成功,其原理就是文件md5+文件sha1的判断
以下是使用JavaScript实现相关系数(Correlation Coefficient)运算的示例代码: 使用该函数,可以传入两个数组作为参数,返回它们的相关系数值。例如: javascript Copy code const arr1 = [1, 2, 3, 4, 5]; const...
编一个程序,用while循环语句来计算1+1/2+2/3+3/4+...+99/100之和。
2. 前端:JSP+CSS+JavaScript+jQuery+bootstrap 使用说明 1. 使用Navicat或者其它工具,在mysql中创建对应名称的数据库,并导入项目的sql文件; 2. 使用IDEA/Eclipse/MyEclipse导入项目,Eclipse/My
以下是使用JavaScript实现简单线性回归分析的示例代码:使用该函数,可以传入两个数组作为参数,返回它们的回归系数b1和截距b0。例如: javascript Copy code const xArr = [1, 2, 3, 4, 5]; const yArr = [5, 4, 3...
使用html+css+javascript实现一个漂亮、炫酷的表白页面,给出源码,该页面使用 CSS 的 radial-gradient 函数实现了爱心背景,并且使用了 filter 属性和 text-shadow 属性来增加页面的视觉效果。同时,使用了 CSS 的 ...
基于HTML+CSS+JavaScript实现的个人网站项目源码(前端开发作业).zip基于HTML+CSS+JavaScript实现的个人网站项目源码(前端开发作业).zip基于HTML+CSS+JavaScript实现的个人网站项目源码(前端开发作业).zip基于...
2、利用先进的Web动态网站开发方案,达到充分利用现有网络资源,对传统的经济模式和产业,打破时间和空间限制,节约成本,提高效率。 3、商城系统应能满足消费者在线购买,消费者可以在个人中心进行订单管理,还能...
0.1,0.2,0.04等小数在使用Math.pow(value, 几次幂) 函数开2次幂,3次幂时的问题 这个版本只能进行7位数以下的开方和次幂,18位数的结果显示 测试:小数点bug依旧存在问题,进行修改布尔类型改为int类型 7.0版 ...
12.2 用Node实现异步I/O297 第二部分 客户端JavaScript 第13章 Web浏览器中的JavaScript309 13.1 客户端JavaScript309 13.2 在HTML里嵌入JavaScript313 13.3 JavaScript程序的执行319 13.4 兼容性和互...
2.实现了浏览器读取本地excel文件,非IE浏览器也可以轻松读取本地文件,解决兼容性问题; 3.支持自定义题库导入,把需要复习的题库按模板格式要求存放在软件同级目录,即可自动导入开始刷题; 4.支持错题、未答题目...
2.JavaScript this 3.JavaScript 闭包 4.JavaScript 事件 5.javascript 跨域 6.javascript 命名空间 Oject-Oriented 1.JavaScript Expressive 2. Interfaces 3.Introduction 4. Inheritance 5.AOP Jquery ...
建议用JavaScript+HTML5实现中国象棋游戏。主要功能为游戏界面显示、落子的响应以及判定胜负统计、用websocket实现ai算法的接口、以Json的数据格式进行通讯、并以其它语言通过ai接口实现ai算法。通过该课题掌握程序...
基于HTML+CSS+JavaScript实现的前端静态洗衣店网站,静态网页代码,详细介绍参考:https://biyezuopinvip.blog.csdn.net/article/details/130419475?...
用H5和JS实现俄罗斯方块。 需要注意以下几点: 1.Canvas 的坐标信息与数组的维度信息恰好相反 2.在因为移动当前下落 的单元格,而更新对应坐标信息时,注意整个游戏平面的坐标信息更新 3.通过settimeout去设置按固定...
HTML+css+JavaScript实现的智慧停车小程序和web端源码+项目说明(大学生创新创业项目).zip HTML+css+JavaScript实现的智慧停车小程序和web端源码+项目说明(大学生创新创业项目).zip HTML+css+JavaScript实现的智慧...
Winamp2-js 用HTML5和Javascript重新实现Winamp 2.9