您现在的位置是:亿华云 > 数据库
如何用JavaScript实现2+2=5?
亿华云2025-10-04 01:25:00【数据库】5人已围观
简介我大学毕业找工作时,经常做一些稀奇古怪的面试题。这不,给大家分享一道整蛊的面试题,它其实不能算一道正式的面试题,大家可以用它来捉弄你们那些程序员朋友。 题目:如何用Jav
我大学毕业找工作时,何用经常做一些稀奇古怪的实现面试题。这不,何用给大家分享一道整蛊的实现面试题,它其实不能算一道正式的何用面试题,大家可以用它来捉弄你们那些程序员朋友。实现
题目:如何用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里闭包等知识点,而是一个障眼法,恶作剧。
云服务器提供商很赞哦!(365)
相关文章
- 其次,一般域名注册有一个获取密码的按钮,域名注册商点击后会向您发送密码。在得到域名注册商发送的密码后,将其传输到域名服务提供商网站,然后输入密码,此时域名呈现申请状态。提交申请后,原注册人通常会向您发送一封电子邮件,询问您是否同意转让。此时,您只需点击同意转移按钮,域名注册商就可以成功转移。
- Electron 使用Pepper Flash插件
- 4个你从未听说过的强大的 JavaScript 运算符
- 初级必备:单例模式的7个问题
- 公司名字不但要与其经营理念、活动识别相统一,还要能反映公司理念,服务宗旨、商品形象,从而才能使人看到或听到公司的名称就能产生愉快的联想,对商店产生好感。这样有助于公司树立良好的形象。
- 让我们一起学习管道模式,你会了吗?
- 以Rabbit MQ为例讲透消息队列
- 我们学习WebFlux 前置知识
- 4、域名传输时,取决于域名原始用户的邮箱是否有效,以及他是否将密码发送到此邮箱。
- 在 JavaScript 中如何克隆对象?