我想知道这两件事是否相同。在我的大脑中他们是。我总体上只是想更好地理解javascript语法。在我的大脑中,这些都是一样的。请让我知道为什么我疯了!谢谢,
是第一个
if (edited === 'true' || edited === '')
与此相同?
if (edited == 'true' && '')
答案 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
被认为与false
,null
,0
等相同。强>
答案 2 :(得分:1)
没有。空引号始终返回“假”值,因此第二次测试将返回true&&假,或假&&假的。