javascript - 不确定这种格式意味着什么

标签 javascript arrays

我对 JavaScript 相当陌生,正在检查一些代码。然而,有一点我不确定。

product = product !== null && product[0] !== null && product[0].id || "";

其中,product 是一个数组。有人可以帮我理解这是做什么的吗?任何帮助将非常感激。非常感谢 =)

最佳答案

了解其作用的一种方法是运行它并观察结果。

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

通过解释进一步澄清这一点...

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

  1. product 数组不为 null

  • product 数组的第一个元素不为 null
  • 并且

  • product 数组的第一个元素是一个对象,其中包含带有键 id 的真实键值对。 IE。第一个元素可能是这样的:
  •  { 
       id: "someValue" // product[0].id would be a truthy value in this case 
     }
    

    并且

  • 如果 3.0 为 true - 分配 id 的值。如果 3.0 不是 true (id:不包含真实的 objectarraynumber string, true - 谷歌搜索 truthy 的精确定义),然后只需分配空字符串 "" ,因此结果将是 产品=“”;
  • 关于javascript - 不确定这种格式意味着什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59075353/

    相关文章:

    javascript - 保持清晰间隔的间隔引用

    javascript - 连接没有索引 0 的 JSON 数组对象未定义

    python - 如何将三个字节打包到 python 结构中?

    javascript - 生成 0-255 3 次...双循环还是三循环?

    php - 使用 PHP 将数组传递给 Ajax

    python - 从 numpy 数组中删除元素时跟踪删除的索引

    javascript - 在 Chrome 开发者工具中禁用脚本编辑

    javascript - jquery中的append()不会第二次追加文件

    javascript - 如何从 Asp.Net Code Behind 调用 JavaScript 函数?

    javascript - 更改状态而不覆盖 react 中的其他值