2016-11-09 34 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

相关问题