【问题标题】:Strange ternary condition in JavaScript or Angular4JavaScript 或 Angular4 中的奇怪三元条件
【发布时间】:2018-09-04 07:44:58
【问题描述】:

我正在编写一个在视图中找到此代码的代码。据我所知,三元条件包含一个“?”然后是用冒号“:”分隔的 2 组指令。我不明白这个三元运算符是如何工作的 - 因为它有 3 个问号,只有 1 个冒号。

三元运算符语法:

var result = condition? if true do this : if false do this; 

用 Angular 编写的自定义代码:

<p>{{ myModal?.subTotal!=null ? '$'+myModal?.subTotal : '' }}</p>

有人能解释一下这个三元条件是怎么写的吗?

【问题讨论】:

    标签: javascript angular conditional ternary-operator


    【解决方案1】:

    看这部分 - myModal?.subTotal != null

    如果myModalundefined or null,则返回false。否则访问它的subTotal 属性,如果不是null,则返回true,否则为false

    这和myModal &amp;&amp; myModal.subTotal != null一样

    更多内容可以看Documentation

    【讨论】:

      【解决方案2】:

      在这种情况下,第一个和最后一个问号不是三元运算符。

      myModal?.subTotal!=null ? '$'+myModal?.subTotal : ''
      (condition            ) ? (if                 ) : (else)
      

      详情请见The safe navigation operator (?.) and null property paths

      Angular 安全导航运算符 (?.) 是防止属性路径中出现空值和未定义值的一种流畅便捷的方法。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-02-28
        • 1970-01-01
        • 2016-10-31
        • 2021-03-29
        • 1970-01-01
        • 1970-01-01
        • 2015-07-28
        • 1970-01-01
        相关资源
        最近更新 更多