【问题标题】:How to mimic the PHP ?? double question mark behaviour in Javascript? [duplicate]如何模仿PHP?? Javascript中的双问号行为? [复制]
【发布时间】:2020-12-19 18:42:05
【问题描述】:
$client = [
  'info' => [
    'company' => 'Apple',
  ]
];

echo $client['information']['company'] ?? 'N/A';

上面的 PHP 代码会安静地显示N/A 作为输出。虽然下面的 Javascript 会抛出一个 Uncaught TypeError:

var user = JSON.parse(' { "info" : { "company" : "apple" } } ');

console.log(user.information.company ?? 'N/A');

Javascript中是否有类似的??操作可以悄悄地显示N/A的结果?

【问题讨论】:

  • 您可以将optional chaining 与具有类似行为的空合并一起使用,例如你会做user?.information?.company ?? 'N/A'

标签: javascript php


【解决方案1】:

在 Javascript 中 ?? 引用 Nullish coalescing operator 当其左侧操作数为 null 或未定义时返回其右侧操作数。

user.information.company 将返回 Uncaught TypeError: Cannot read property 'company' of undefined 改为错误。

在这种情况下最好使用可选的链接运算符 (?.),它允许读取位于连接对象链深处的属性的值,而无需明确验证每个引用在链是有效的。

示例:

var user = JSON.parse(' { "info" : { "company" : "apple" } } ');
console.log(user?.information?.company ?? 'N/A');

【讨论】:

    猜你喜欢
    • 2011-03-21
    • 1970-01-01
    • 2019-01-24
    • 1970-01-01
    • 2021-07-23
    • 1970-01-01
    • 1970-01-01
    • 2015-06-01
    • 2021-02-08
    相关资源
    最近更新 更多