摘要:簡(jiǎn)評(píng)你認(rèn)為這個(gè)問(wèn)題是一個(gè)好的面試題嗎在中可能為嗎這個(gè)問(wèn)題是國(guó)外一位求職者最近在面試一家大型科技公司時(shí)遇到的一個(gè)問(wèn)題。這里給一個(gè)最高贊的答案自定義或者方法,每次調(diào)用改變一次返回值,從而滿(mǎn)足判斷條件。
簡(jiǎn)評(píng):你認(rèn)為這個(gè)問(wèn)題是一個(gè)好的面試題嗎?
在 JavaScript 中 (a ==1 && a== 2 && a==3) 可能為 true 嗎?
這個(gè)問(wèn)題是國(guó)外一位求職者最近在面試一家大型科技公司時(shí)遇到的一個(gè)問(wèn)題。
他的回答是「不可能」,而面試方說(shuō)「nothing is impossible」,然后就沒(méi)有然后了。
雖然在實(shí)際工作中可能沒(méi)人會(huì)寫(xiě)這樣的代碼,但題主還是放不下,苦思冥想了兩個(gè)禮拜,終于還是決定在 Stack Overflow 上尋求解答。
大家可以先自己想一想。
...
...
...
這里給一個(gè)最高贊的答案:
自定義 toString(或者 valueOf)方法,每次調(diào)用改變一次返回值,從而滿(mǎn)足判斷條件。
const a = { i: 1, toString: function () { return a.i++; } } if(a == 1 && a == 2 && a == 3) { console.log("Hello World!"); }
當(dāng)使用 == 時(shí),如果兩個(gè)參數(shù)的類(lèi)型不一樣,那么 JS 會(huì)嘗試將其中一個(gè)的類(lèi)型轉(zhuǎn)換為和另一個(gè)相同。在這里左邊對(duì)象,右邊數(shù)字的情況下,會(huì)首先嘗試調(diào)用 valueOf(如果可以調(diào)用的話(huà))來(lái)將對(duì)象轉(zhuǎn)換為數(shù)字,如果失敗,再調(diào)用 toString。
其實(shí),還有很多其他的實(shí)現(xiàn),感興趣的可以點(diǎn)擊鏈接看看。
比如,我比較喜歡這個(gè):
with({ get a() { return Math.floor(Math.random()*4); } }){ for(var i=0;i<1000;i++){ if (a == 1 && a == 2 && a == 3){ console.log("after "+(i+1)+" trials, it becomes true finally!!!"); break; } } }
問(wèn)題:Can (a ==1 && a== 2 && a==3) ever evaluate to true? reddit
討論:Javascript: Can (a ==1 && a== 2 && a==3) ever evaluate to true? r/programming
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/107555.html
我們說(shuō)下想要實(shí)現(xiàn),一副牌里有54張,我們可以知道 3 - 2 的牌總共有13張,這分為4個(gè)花色是 ?? ?? ?? ?? 另外加上2個(gè)大小王!第一步:形成一個(gè)數(shù)組, 就要寫(xiě)一個(gè)函數(shù),利用牌數(shù)量和花色,這樣可以用來(lái)形成一個(gè)雙重循環(huán)將 number 里面的內(nèi)容 和 flower 里面的內(nèi)容 進(jìn)行一個(gè)循環(huán)嵌入?最后在用 push 生成一個(gè)對(duì)象放到數(shù)組的后面?再到最后放入 大小王 ?! onstnu...
今天主要就是匯總JavaScript數(shù)組的9中不同方法匯總,也將詳細(xì)示例展示給大家。 如果你還不知道數(shù)組實(shí)例中迭代方法有什么區(qū)別,可以看下面這張圖: map 代表返回一個(gè)新的數(shù)組,且數(shù)組中的每一項(xiàng)都是執(zhí)行過(guò)map提供的回調(diào)函數(shù)結(jié)果?! ?shí)現(xiàn)代碼如下: constmap=(array,fun)=>{ //類(lèi)型約束 if(Object.prototype.toString.c...
摘要:我們舉個(gè)例子我們可以對(duì)上述對(duì)象使用方法,他會(huì)返回一個(gè)對(duì)象。在我們的問(wèn)題中會(huì)企圖將對(duì)象轉(zhuǎn)化成數(shù)字的類(lèi)型,進(jìn)行比較。幸運(yùn)的是,在中有符號(hào)。當(dāng)我們每次調(diào)用的時(shí)候,他會(huì)將變量增加返回給我們。 如果你能確切的答出可以,那恭喜你,你可以繞道了 前言 有人會(huì)說(shuō),這個(gè)問(wèn)題好奇葩,放在別的語(yǔ)言里,這要是能輸出true,估計(jì)是見(jiàn)鬼了,但是你別說(shuō),放在js中好真有可能。最近在一個(gè)人的推特上提了一個(gè)問(wèn)題: ...
一、我們先說(shuō)說(shuō)javascript的作用域 ①全局變量-函數(shù)體外部進(jìn)行聲明 ?、诰植孔兞?函數(shù)體內(nèi)部進(jìn)行聲明 1)函數(shù)級(jí)作用域 javascript語(yǔ)言中局部變量不同于C#、Java等高級(jí)語(yǔ)言,在這些高級(jí)語(yǔ)言?xún)?nèi)部,采用的塊級(jí)作用域中會(huì)聲明新的變量,這些變量不會(huì)影響到外部作用域?! 《鴍avascript則采用的是函數(shù)級(jí)作用域,也就是說(shuō)js創(chuàng)建作用域的單位是函數(shù)。 例如: 在C#當(dāng)中我...
要是別人問(wèn)您:如何讓 x 等于 1 且讓 x 等于 2 且讓 x 等于 3 的等式成立? 咋地,知道如何實(shí)現(xiàn)?想罵人有不 現(xiàn)在我們一起來(lái)分解思路: 我們先來(lái)講講寬松相等== 和嚴(yán)格相等 ===,這兩個(gè)都能用來(lái)判斷兩個(gè)值是否相等,但們明確上文提到的等于指的是哪一種,二者的區(qū)別看下: (1) 這兩個(gè)基礎(chǔ)直接的區(qū)別: (1.1) 不同類(lèi)型間比較,== 比較轉(zhuǎn)化成同一類(lèi)型后的值看值是否相等,...
閱讀 739·2021-08-17 10:11
閱讀 1601·2019-08-30 11:15
閱讀 1027·2019-08-26 13:54
閱讀 3512·2019-08-26 11:47
閱讀 1229·2019-08-26 10:20
閱讀 2826·2019-08-23 18:35
閱讀 1222·2019-08-23 17:52
閱讀 1303·2019-08-23 16:19