gpt4 book ai didi

javascript - 是 !!隐式强制转换,Boolean() 不完全相同吗?

转载 作者:行者123 更新时间:2023-12-02 21:59:29 24 4
gpt4 key购买 nike

我只是想知道 !! 是隐式强制还是显式强制。

例如

    const a = null;

Boolean(a)!!a 不完全相同吗?

最佳答案

! 运算符 is evaluated as

  1. Let expr be the result of evaluating UnaryExpression.
  2. Let oldValue be ! ToBoolean(? GetValue(expr)).
  3. If oldValue is true, return false.
  4. Return true.

如您所见,在步骤 2 中执行了 ToBoolean

然后 bool 调用is defined as

  1. Let b be ! ToBoolean(value).
  2. If NewTarget is undefined, return b.
  3. Let O be ? OrdinaryCreateFromConstructor(NewTarget, "%Boolean.prototype%", « [[BooleanData]] »).
  4. Set O.[[BooleanData]] to b.
  5. Return O.

其中步骤 1 也是 ToBoolean

因此,它使 !!exprBoolean(expr)

相同

关于javascript - 是 !!隐式强制转换,Boolean() 不完全相同吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59916722/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com