1
在鉻控制檯中,我運行{} === {}
,出現語法錯誤,出現意外的'==='。如果我在控制檯中運行它,爲什麼會出現語法錯誤? {} === {}
如果我然後把它包裹在parens中,比如({} === {})
那麼我會得到false
,我期望的。
是一個對象字面值,在第一個位置,與代碼塊或其他東西混淆?
在鉻控制檯中,我運行{} === {}
,出現語法錯誤,出現意外的'==='。如果我在控制檯中運行它,爲什麼會出現語法錯誤? {} === {}
如果我然後把它包裹在parens中,比如({} === {})
那麼我會得到false
,我期望的。
是一個對象字面值,在第一個位置,與代碼塊或其他東西混淆?
沒有周圍的圓括號,{}
將被視爲javascript中的空code block
。 =
後跟code block
將是一個無效的語法。這就是爲什麼你在那裏看到一個錯誤。
如果將其包裝在({} === {})
之類的括號內,則它將被視爲expression
,並且它將被評估爲false,因爲它們都引用兩個不同的對象。
下面的例子可以給你關於它的清晰的圖像,
{ var x = 5; console.log(x); } == 2
// will throw the same error that you are facing.
是的,沒有它是一個聲明,而不是表達括號,所以它試圖解釋第一對大括號中爲空碼塊。 –
似乎它需要在控制檯中執行的功能。 Chrome控制檯或Firefox的控制檯如何? – Jai
你的猜測是正確的。 Chromium控制檯允許您運行任意語句,而不僅僅是評估表達式。 – ruakh