为了账号安全,请及时绑定邮箱和手机立即绑定

不确定这种格式的含义

不确定这种格式的含义

慕桂英4014372 2022-01-13 16:32:10
我对 JavaScript 相当陌生,并且正在查看一些代码。但是有一点我不确定。product = product !== null && product[0] !== null && product[0].id || "";其中 product 是一个数组。有人可以帮我理解这是做什么的。任何帮助将非常感激。非常感谢 =)
查看完整描述

2 回答

?
慕森王

TA贡献1777条经验 获得超3个赞

一种理解这是做什么的方法来运行它并观察结果。

product这是一个显示 3 个示例的 JSBin - 根据- https://jsbin.com/roruvecubi/edit?js,console的初始值产生不同的结果

为了进一步澄清这个解释......

它将尝试评估所有以下前提是否true同时存在并重新分配product给找到的第一个对象的值id(如果找到这些),否则重新分配一个空字符串。

  1. product 数组不是 null

  1. 数组的第一个元素product不是null

  1. 数组的第一个元素product是一个对象,其中包含一个带有 key 的真实键值对id。即第一个元素可能是这样的:

 { 
   id: "someValue" // product[0].id would be a truthy value in this case 
 }

  1. 如果 3.0 是true- 赋值id. 如果 3.0 不是true(id:不包含真值objectarraynumberstringtrue- Google 的精确定义truthy),那么只需分配空字符串"",因此结果将是product = "";


查看完整回答
反对 回复 2022-01-13
?
吃鸡游戏

TA贡献1829条经验 获得超7个赞

  1. product !== null 它检查 product 是否为 null 如果它是它会在此处停止并且不进行其他计算(这是实践的,因此您不会得到未定义,在这种情况下,hmm null)

  2. 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--


查看完整回答
反对 回复 2022-01-13
  • 2 回答
  • 0 关注
  • 166 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信