2017-08-25 120 views
1
var hp ='geo' 
2==2 && hp += 'jio' 

爲什麼我收到錯誤的 : - 參考錯誤:無效的左手側分配JS錯誤與&&運營商

'// '' ///'//

+0

你到底想達到什麼目的? – Thijs

+1

因爲它被評估爲'(2 == 2 && hp)+ ='jio'' – adeneo

回答

0

有在hp += 'jio'之前是邏輯運算符&&。這就是得到錯誤Invalid left-hand side in assignment的原因。

expressions and operators一起使用時,請注意,運算符的優先級(在此例中爲&&)決定了在評估表達式時應用它們的順序。您可以使用括號覆蓋運算符優先級。

在這種情況下,如果您想要修改變量hp,您應該使用圓括號來執行此操作,因爲使用圓括號時,初始化的右側將作爲單個表達式執行。

代碼:

var hp = 'geo'; 
 

 
2 == 2 && (hp += 'jio'); 
 

 
console.log(hp);