对象真假判断

3.5.6 编写ProdctsList的视图模板

2. isSelected

代码如下:

  isSelected(product: Product): boolean {
    if (!product || !this.currentProduct) {
      return;
    }

    return product.sku === this.currentProduct.sku;
  }

  这里直接对对象进行了判断,结果不清楚后面测试,猜测是判断对象非空。

根据javascript权威指南对布尔值的解释:

  undefined

  null

  0

  -0

  NaN

  ""

以上均为负数。

来看一个例子,假设变量o是一个对象或是null,可以通过一条if语句来显式地检测o是否是非null值:

if (o !==null)

不等操作符“!==”将o和null比较,并得出结果为true或false。

可以先忽略这里的比较语句,null是一个假值,对象是一个真值

if (o)

对于第一种情况,只有当o不是null时才会执行if后的代码,

第二种情况的限制没那么严格:只有o不是false或任何假值(比如null或undefined)时它才会执行这个if。

到底选用哪条语句取决于期望赋给o的值是什么。

如果需要将null与0或""区分开来,则需要使用一个显式的比较。

JavaScript权威指南 第六版 3.3布尔值

原文地址:https://www.cnblogs.com/have-a-try/p/12846169.html