这是什么意思?:x || x === {}

Baz*_*Baz 6 javascript

以下是:

x || x === {}
Run Code Online (Sandbox Code Playgroud)

不是意味着!!x,也x就是定义?

Nin*_*olz 7

这种比较没有任何意义,因为要么x是真实的,那么你得到的结果是x,或得到false假的(假的值永远不会严格等于空对象实例).

一个简洁的版本将是

x || false
Run Code Online (Sandbox Code Playgroud)

给我xfalse.

  • @RazvanDumitru这就是她写"假"的原因 (2认同)
  • 当然,但对于初学者来说,直接进入最终结果是不明确的. (2认同)
  • 你是对的,但我想概括你的最后一句话:_Nothing_严格等于空对象文字. (2认同)

Tom*_*ski 5

x || x === {}基本上是指x || false.

!!x意思是" x真正的",所以它不完全相同 - 如果真的是真的x || x === {}会返回.在同样的情况下,将返回.xx!!xtrue

||运算符意味着"如果左侧是真的(不是null,不是undefined,0等等 - 请参阅JavaScript中的所有falsey值以获取详细信息)返回左侧,否则返回右侧".

在右侧,你x === {}总是评估false,因为严格的比较意味着比较参考(即,"是x同一个对象{},从来都不是真的)

!!x并且x || x === {}只有当x === true或时才会相同x === false