这是一个简单的JavaScript语法问题

时间:2014-01-10 21:06:28

标签: javascript

我想知道这两件事是否相同。在我的大脑中他们是。我总体上只是想更好地理解javascript语法。在我的大脑中,这些都是一样的。请让我知道为什么我疯了!谢谢,

是第一个

if (edited === 'true' || edited === '')

与此相同?

if (edited == 'true' && '')

3 个答案:

答案 0 :(得分:6)

没有。它们完全不同。

在第一个中,它会检查edited === 'true'edited === ''是否为真。

在第二个中,它检查edited == 'true'''是否都为真。 ''转换为false,因此第二个转化为edited == 'true' && false或仅仅false

答案 1 :(得分:4)

这些被称为logical operators

以下是每个人的作用:

&& - 测试两种条件是否为真

|| - 测试条件是否为真


代码:

if (edited === 'true' || edited === '') 你实际上可以......

if (edited === 'true || '') 测试 edited === true OR false是否为真,run it

if (edited === 'true' && '') 测试 edited === true AND false

显然,last one永远不会有效,因为edited被认为与falsenull0等相同。

答案 2 :(得分:1)

没有。空引号始终返回“假”值,因此第二次测试将返回true&&假,或假&&假的。