2011-07-04 63 views
0
if(e.FN === ' ' && e.GN === ' ' && e.LN === ' ' && e.DB === ' '){ 

这种情况根本不会被评估。这是检查所有值是否为空的方法。&& JavaScript中的运算符优先级

+0

你是什么意思“条件永远不会被评估”?你的意思是,它从来没有评估到真实?如果他想要评估所有操作数,可以使用'if(!e.FN &&!e.GN &&!e.LN &&!e.DB){...}' –

+0

@Aleks单身&会工作。如果(e.FN === null&e.GN === null&e.LN === null&e.DB === null)并且更具可读性。 – Zoidberg

回答

2

现在如果这些值都等于一个空间,你正在检查。 ===不仅比较值,而且确保它们是相同的类型。但是,如果e.FN为空,那么e.FN == ' ' and e.FN === ' "将始终返回false。我想你想要的是

if(e.FN === null && e.GN === null && e.LN === null && e.DB === null) 

,甚至更好,如果你不在乎,如果他们为null,未定义或0,你可以做

if(e.FN && e.GN && e.LN && e.DB) 
0

尝试:

if(e.FN === null && e.GN === null && e.LN === null && e.DB === null){ 
0

要检查是否所有的值均为空你应该做的:

if(e.FN === null && e.GN === null && e.LN === null && e.DB === null){ 

如果第一个值不为空JavaScript不评价其他条件,因为如果第一个条件为假它并不适用于所有的条件是真实的。