2 回答
TA贡献1777条经验 获得超3个赞
一种理解这是做什么的方法来运行它并观察结果。
product
这是一个显示 3 个示例的 JSBin - 根据- https://jsbin.com/roruvecubi/edit?js,console的初始值产生不同的结果
为了进一步澄清这个解释......
它将尝试评估所有以下前提是否true
同时存在并重新分配product
给找到的第一个对象的值id
(如果找到这些),否则重新分配一个空字符串。
product
数组不是null
和
数组的第一个元素
product
不是null
和
数组的第一个元素
product
是一个对象,其中包含一个带有 key 的真实键值对id
。即第一个元素可能是这样的:
{ id: "someValue" // product[0].id would be a truthy value in this case }
和
如果 3.0 是
true
- 赋值id
. 如果 3.0 不是true
(id:不包含真值object
,array
,number
,string
,true
- Google 的精确定义truthy
),那么只需分配空字符串""
,因此结果将是product = ""
;
TA贡献1829条经验 获得超7个赞
product !== null 它检查 product 是否为 null 如果它是它会在此处停止并且不进行其他计算(这是实践的,因此您不会得到未定义,在这种情况下,hmm null)
product[0] !== null 检查是否为 null,所以当 .id 时你不会得到错误 can't find id of undefined / null
let usr = null console.log(usr.id)
GIVES ERROR Uncaught TypeError: Cannot read property 'id' of null enter code here
简而言之,这些是检查 VARIABLE 是否有不需要的值以在此处停止计算并且不会出错的一些做法。有些人更喜欢尝试 catch v--
添加回答
举报