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布尔值