鍍金池/ 問答/HTML/ javascript解析問題: {}+[] 與 {} +{}

javascript解析問題: {}+[] 與 {} +{}

{}+[]    //0
{}+{}    //"[object Object][object Object]"

RT,為什么第一項(xiàng)開頭的{}被解析成塊作用域,而第二項(xiàng)開頭的{}沒有被解析成塊作用域。。

回答
編輯回答
編輯回答
編輯回答
朕略萌

可以參考的:http://www.cnblogs.com/ziyunf...

{}+[] 和 {}+{} 作為表達(dá)式和聲明返回的結(jié)果是不一樣的。
在聲明中開頭是{}才會(huì)被解析成塊作用域。在表達(dá)式中都會(huì)被先valueOf()一下,再toString()一下。

同時(shí),firefox下{}+{} 返回值為NaN,說明firefox也是把它當(dāng)作聲明來解析的。console.log({}+{})返回的就是"object Object"了,因?yàn)楹瘮?shù)的參數(shù)是當(dāng)作表達(dá)式來解析的。

至于chrome下,{}+{}返回值的原因,有可能是因?yàn)閏hrome把{}+{}解析成了一個(gè)表達(dá)式。
更具體的就不知道了,求采納。

2018年4月20日 02:32