我大學畢業(yè)找工作時,經(jīng)常做一些稀奇古怪的面試題。這不,給大家分享一道整蠱的面試題,它其實不能算一道正式的面試題,大家可以用它來捉弄你們那些程序員朋友。
成都創(chuàng)新互聯(lián)公司是一家專業(yè)從事成都網(wǎng)站制作、成都網(wǎng)站建設的網(wǎng)絡公司。作為專業(yè)網(wǎng)站建設公司,成都創(chuàng)新互聯(lián)公司依托的技術實力、以及多年的網(wǎng)站運營經(jīng)驗,為您提供專業(yè)的成都網(wǎng)站建設、成都全網(wǎng)營銷推廣及網(wǎng)站設計開發(fā)服務!
題目:如何用JavaScript實現(xiàn)2+2=5?
答案如下。
新建一個txt文件,然后把后綴名改為.html, 再用瀏覽器打開。
會先后彈出兩個對話框,依次顯示6,5。
但是,第二個函數(shù)f里面,明明變量H被賦成了2, 2 + 2 應該等于4才對,為什么答案是5????
我們用Chrome開發(fā)者工具調試一下,看看到底有什么玄虛。
為什么函數(shù)f里有兩個看起來一模一樣的H,但是一個值為2,一個值為3?
到現(xiàn)在,肉眼已經(jīng)不能幫助我們了。那么我們就請出winHex這款16進制文件編輯與磁盤編輯神奇出馬。
先從百度上搜索ASCII,得知大寫字母的H的十六進制編碼為48.
然后我們用WinHex打開上述代碼文件,果然發(fā)現(xiàn)了這個48的16進制編碼對應了大寫H。
同樣,加號“+”的16進制編碼是2B:
空格為20。
所以謎底在這里,加號前面肉眼看起來像大寫字母H的變量“H",其實并不是H,其16進制編碼為CE 97。它的值在函數(shù)f里賦為2,而大寫H賦為3,2 + 3 = 5,所以彈出窗里我們看到的結果是5。
這道題其實并沒有考察JavaScript里閉包等知識點,而是一個障眼法,惡作劇。