2016-11-09 66 views
2

我複製從另一個腳本(由我自己爲了同樣的目的寫的),所以想不通爲什麼它按預期工作不匹配()在如果聲明是真實的返回而不是數組

} else if (new_var = message.toLowerCase().match(/!test\s(.+)/) && user === 'user') { 

然後我傳遞的message

!test test 

所以我的理解是,new_var應包含以下以下

new_var[0] = !test test 
new_var[1] = test 

然而,console.log(new_var)被返回true

+0

如果你打破了你的表情,以單一線條會更容易閱讀,維護,共享和降低錯誤的機率。 https://sourcemaking.com/refactoring/decompose-conditional – Sukima

回答

4

要分配的

message.toLowerCase().match(/!test\s(.+)/) && user === 'user' 

的結果new_varuser === 'user'想必在你的情況下返回true

&&具有比=更高的優先級。使用括號來改變它:

(new_var = message.toLowerCase().match(/!test\s(.+)/)) && user === 'user' 
+0

啊,我現在明白了。我在其他劇本中沒有&&。現在工作很好,謝謝你很多:) – cantsay

相關問題