gpt4 book ai didi

javascript - bool 运算符返回 "casting"的目的是什么?

转载 作者:搜寻专家 更新时间:2023-11-01 05:05:57 26 4
gpt4 key购买 nike

来自 underscore :

  _.isElement = function(obj) {
return !!(obj && obj.nodeType === 1);
};

!! 的目的是什么。它认为 and 语句的结果总是 true 或 false。

我已经看到它被用作“转换”为 bool 类型的方式。

但我认为这里没有必要。

最佳答案

!! 技巧可确保输出为真为假。

当 obj 的计算结果为 false-y 值(例如“”或 0)时,表达式 obj && .. 将产生 obj 的值。

有时输入对象与结果不相关,这种“强制转换”(根本不是强制转换,而是一种强制转换)清理了 API 并避免泄露细节 - 可以肯定的是 返回 true 或 false。

这是 a && b 的 TTL,请注意结果不一定为真或假:

a         b        a && b
------- ------ ------
TRUTH-y ANY b
FALSE-Y ANY a

这里是 !e 的 TTL,结果总是 true 或 false:

e         !e       !!e
------- ------ ------
TRUTH-y false true
FALSE-y true false

表达原始表达式的另一种方式,我实际上经常使用:

return obj ? obj.nodeType === 1 : false;

关于javascript - bool 运算符返回 "casting"的目的是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16365886/

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