gpt4 book ai didi

angularjs - AngularJS 中的真值和假值是什么?

转载 作者:行者123 更新时间:2023-12-04 04:34:06 25 4
gpt4 key购买 nike

我认为它会在 ng-show 的上下文中考虑或 ng-class ?还有其他情况吗?似乎truthy 和falsy 与纯JavaScript 略有不同——但到目前为止我所知道的唯一一个异常(exception)是[] -- 这在 JavaScript 中是真的,但在 AngularJS 中是假的。

(实际上,我尝试使用 AngularJS 1.2.1 和 [] 是假的,而在 AngularJS 1.4.8 和 1.5.0 上, [] 是真的。见 https://jsfiddle.net/6ayaLhbk/https://jsfiddle.net/6ayaLhbk/1/ 和 |7915| )

我认为它有一个问题,人们可能会想到 ng-show="ctrl.foo"ng-hide="!ctrl.foo" 相同但在 Angular 1.2.1 的情况下,它不是。要在 Angular 1.2.1 中获得与纯 JavaScript 相同的结果,我们似乎可以使用 ng-show="!!ctrl.foobar" https://jsfiddle.net/6ayaLhbk/2/

如果是ng-class在 Angular 1.2.1 中,它似乎又回到了纯 JS 的真假规则:https://jsfiddle.net/6ayaLhbk/3/

最佳答案

以下值始终为假:

  • 0(零)
  • ""(空字符串)
  • 未定义
  • NaN(一个特殊的数值,表示非数字!)

  • All other values are truthy, including "0" (zero in quotes), "false" (false in quotes), empty functions, empty arrays, and empty objects.


    var a = !!(0); // variable is set to false
    var b = !!("0"); // true

    比较假值
    假值遵循一些稍微奇怪的比较规则,这可能导致程序逻辑错误。

    假值 false、0(零)和 ""(空字符串)都是等价的,可以相互比较:
    var c = (false == 0); // true
    var d = (false == ""); // true
    var e = (0 == ""); // true

    假值 null 和 undefined 不等价于它们本身以外的任何东西:
    var f = (null == false); // false
    var g = (null == null); // true
    var h = (undefined == undefined); // true
    var i = (undefined == null); // true

    最后,假值 NaN 不等同于任何东西——包括 NaN!
    var j = (NaN == null); // false
    var k = (NaN == NaN); // false

    您还应该知道 typeof(NaN)返回“数字”。幸运的是,核心 JavaScript 函数 isNaN()可用于评估值是否为 NaN。

    如有疑问...
    在真值或假值可能导致逻辑错误的情况下,使用严格等于 (===) 和严格不等于 (!==)。这些运算符确保按类型和值比较对象。
    var l = (false == 0); // true
    var m = (false === 0); // false

    关于angularjs - AngularJS 中的真值和假值是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35776390/

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