drz*_*aus 4 javascript debugging parsing
在编写一个javascript函数来评估多变量条件时,我遇到了似乎是Javascript中的解析器错误.如果我忘了某件事,或者这是否合适,请告诉我.
在我的函数中,我将返回AND几个变量的结果,如下所示:
return
// a comment, for kicks
a1 && a2
&&
b1 && b2
&&
// another comment
c1 && c2
&&
d1 && d2
;
Run Code Online (Sandbox Code Playgroud)
但是,即使所有这些变量都具有显式值true,函数也会返回undefined而不是预期值true.
我已经尝试了几种返回此表达式的变体,我发现:
查看工作示例:http://jsfiddle.net/drzaus/38DgX/
任何人都可以解释为什么会这样吗?
你遇到的是Javascript中的奇怪行为,称为"分号插入".总而言之,当一行的结尾可以被解释为语句的结尾而不引入语法错误时,Javascript将会这样做.在return语句符合条件后的换行符- 为了防止这种情况发生,你可以将返回的值包装在括号中,如下所示:
return (
a1 && a2
...
d1 && d2
);
Run Code Online (Sandbox Code Playgroud)
有更多细节(以及规范中的引用):麻烦理解分号插入
| 归档时间: |
|
| 查看次数: |
894 次 |
| 最近记录: |