2012-03-28 126 views
1

可能重複:
JavaScript BlockStatement confusion爲什麼{10 +'1'} + 10等於10?

爲什麼{10 + '1'} + 10等於10?

我猜測1不起作用,因爲它在一個字符串中,但不知道其餘的。

+3

我懷疑鑄造對象爲整數的產量爲0,所以0 + 10 = 10.你期望會發生什麼? – Matthew 2012-03-28 14:34:33

+0

但是{} + {} + 0'產生'NaN'得到lurv javascript <3 – 2012-03-28 14:35:51

+5

'{10 +'1'}'不是一個對象。 – 2012-03-28 14:36:09

回答

12

此:

{10 + '1'} 

是一個語句塊。這不等於10;它有 沒有任何價值,實際上 的值爲「101」,一個字符串(學習一些無用的東西:-)。這不是一個特別的對象。

此:

​​

等於10

試試這個:

({10 + '1'}) + 10 

,你會看到一個差異。

+0

'({10 +'1'})+ 10' =>語法錯誤:-) – 2012-03-28 14:36:16

+2

是的,這就是我意思是:-)重點是解析器看到一個語句塊,然後是另一個語句:表達式「+ 10」。該塊是種不相關的。 – Pointy 2012-03-28 14:37:15

2

這是因爲{}中的所有代碼都被忽略。 {}中的代碼是一個運行的表達式,然後忽略它的「值」。

因此{10 + '1'} + 10只是+10這就是10

0

你可能想什麼做的是:

(10 + '1') + 10 

不要在數學使用{} - 使用()

+2

在「數學」中放棄字符串連接也許是一個好主意。 – pimvdb 2012-03-28 14:40:25

相關問題