下面**中a在什麼情況下會列印1?:
var a = ?
if (a == 1 && a == 2 && a == 3)
這題目猛一看,怎麼可能?但事實上答案其實很簡單,如下:
var a =
}if (a == 1 && a == 2 && a == 3)
看不明白?到現在是否有種懷疑自己學過的js是假的感覺?來看下解題思路:
1、物件在與字串拼接或比較時,首先會通過valueof()方法來呼叫其原始值。原始值即其本身的值。
var a ={};
console.log(a.valueof());// {}
console.log(a === a.valueof());// true
console.log(typeof a.valueof());// object
2、如果值為物件,則會呼叫tostring()方法。若物件本身沒有該方法,會返回"[object objectname]",其中 objectname 是物件型別的名稱。var a = {};
console.log(a.tostring());// [object object]
console.log(a.tostring() + 1);// [object object]1
console.log(a + 1 === a.tostring() + 1);// true
3、該物件obj下如果有tostring()方法,會呼叫該方法。var a =
};console.log(a.tostring());// 1
console.log(a.tostring() + 1);// 2
console.log(a + 1 === a.tostring() + 1);// true
4、通過以上三點推斷出:物件每進行一次比較或拼接都會執行tostring方法。var num =1;
var a =
};console.log(a+"");// 2
console.log(a+"");// 3
console.log(a + 1);// 5
console.log(a == 5);// true
5、現在再來看下答案是不是很簡單了?var a =
一道有意思的JS面試題
var name the window var object console.log object.getnamefunc 這道題答案就是 the window 我也毫不猶豫的掉進坑裡面了 苦悶啊 其實這種情況有些人會經常遇到就是會用 var this this 我相信這行 你一定寫過 先說一下函式...
轉一道有意思的面試題
我的老同學開創了乙個軟體公司,富的流油。今天他到這個城市來後馬上打 給我 還好吧?我到這裡的大學招畢業生,要呆上五天,咱哥們趁這個機會好好聚一聚,我做東。既然他要做東,我理所當然順水推舟。來到他下榻的賓館,看見乙個大學生模樣的人站在他面前接受面試。我的老同學說 我這裡有個魔方,你能不能把它弄成六面六...
一道有意思的面試題的解答
題目 有一副牌,52張,先要求隨機的進行分配。分析 一52張的副牌,可以分析出實體bean為card 紙牌 還有乙個管理紙牌的類cardmanager。程式如下 card類 cardmanager類 mainclass類 其中的乙個輸出的結果為 程式之中所要注意的問題 personmap.get i...