gpt4 book ai didi

JavaScript 语法 : AngularJS Filter

转载 作者:行者123 更新时间:2023-12-02 16:29:57 25 4
gpt4 key购买 nike

我发现了这段在 AngularJS 中应用过滤器的优秀代码 here 。它按预期工作,尽管我有点不确定缩短的用途! ?和 : 在这种情况下将取代。

根据经验,它看起来像?和 : 是三元运算符,尽管我不完全确定 ! 的功能是什么。有。

从 stackoverflow 来看,似乎 !根据上下文具有多种功能,即 3755606 .

 app.filter('myFilterName', function () {
return function (value) {
return (!value) ? '' : value.replace(/ /g, '');
};
});

最佳答案

!logical NOT operator :它将其参数强制为 bool 值,然后反转该值(例如,true 变为 false,false 变为 true)。 if (!value) 检查value 是否具有 false 值。什么是“假”值?任何在强制转换为 bool 值时变为 false 的值。即 nullundefined""NaN0,当然还有,

测试? one_thing : another_thingconditional operator 。如果正在测试的值是真值,则对 ? 之后的表达式进行求值,并且条件表达式将采用该结果;如果不是,则计算 : 之后的表达式,并且条件表达式采用该结果。 (有时您会听到条件运算符称为“三元”运算符。确实,它是a三元运算符[接受三个操作数的运算符],并且它是当前唯一的三元运算符JavaScript,但它的正确名称是“条件运算符”。理论上,有一天其他三元运算符可以添加到该语言中......)

最终结果是:

return (!value) ? '' : value.replace(/ /g, '');

是:

  • value 强制转换为 bool 值:Falsey 值变为 false,所有其他值变为 true

  • 反转该 bool 值。

  • 如果反转 bool 值为true,则返回'';否则,计算 value.replace(//g, '') 并返回结果。

我的猜测是 value 始终是一个字符串。如果是这样,那么简短的版本是:如果 value"",则返回 "";否则,返回 value 的内容并删除所有空格。

<小时/>

旁注:!value 周围的 () 是完全不必要的。

关于JavaScript 语法 : AngularJS Filter,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28396621/

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