2016-03-05 32 views
1

在鉻控制檯中,我運行{} === {},出現語法錯誤,出現意外的'==='。如果我在控制檯中運行它,爲什麼會出現語法錯誤? {} === {}

如果我然後把它包裹在parens中,比如({} === {})那麼我會得到false,我期望的。

是一個對象字面值,在第一個位置,與代碼塊或其他東西混淆?

+1

是的,沒有它是一個聲明,而不是表達括號,所以它試圖解釋第一對大括號中爲空碼塊。 –

+0

似乎它需要在控制檯中執行的功能。 Chrome控制檯或Firefox的控制檯如何? – Jai

+0

你的猜測是正確的。 Chromium控制檯允許您運行任意語句,而不僅僅是評估表達式。 – ruakh

回答

3

沒有周圍的圓括號,{}將被視爲javascript中的空code block=後跟code block將是一個無效的語法。這就是爲什麼你在那裏看到一個錯誤。

如果將其包裝在({} === {})之類的括號內,則它將被視爲expression,並且它將被評估爲false,因爲它們都引用兩個不同的對象。

下面的例子可以給你關於它的清晰的圖像,

{ var x = 5; console.log(x); } == 2 
// will throw the same error that you are facing. 
相關問題