我不想問爲什麼[] + []會給你空字符串,等等,因爲我們不能改變它。原因僅僅是語言的設計。添加數組和對象時JS控制檯的不一致性
我的問題是關於下面的不一致,注意到在Chrome和FF Firebug的JS控制檯:
{} + []; // outputs 0
console.log({} + []); // outputs [object Object]
var c = {} + [];
console.log(c); // outputs [object Object]
據我所知,表達式返回一個值,這就是你在控制檯輸出中看到。但爲什麼當這個返回值改變時,當分配給一個變量或輸出使用console.log()
?
這是否意味着提到的控制檯是越野車?
是否有更好的解釋,然後說明這是它的方式?
爲什麼不去掉其中的每一個地方給*同*輸出的情況下?這只是混亂。 –
[CodeMash 2012'Wat講座中提到的這些奇怪JavaScript行爲的解釋是什麼?](http://stackoverflow.com/questions/9032856/what-is-the-explanation-for-these -bizarre-javascript-behaviours-mentioned-the-the) – Bergi
@Bergi你是對的 - 他們觸及這個同樣的問題。感謝您發佈此鏈接! – Karol