C# 6.0 刚刚发布,有一个新的漂亮的小功能,我真的很想在 JavaScript 中使用它。他们被称为空条件运算符 https://github.com/dotnet/roslyn/wiki/New-Language-Features-in-C%23-6#null-conditional-operators。这些使用一个?.
or ?[]
syntax.
这些的作用本质上是让你检查你拥有的对象是否是null
,在尝试访问属性之前。如果物体是null
,那么你会得到null
作为您的财产访问的结果。
int? length = customers?.Length;
So here int
可以为 null,并且在以下情况下将采用该值:customers
一片空白。更好的是你可以链接这些:
int? length = customers?.orders?.Length;
我不相信我们可以在 JavaScript 中做到这一点,但我想知道做类似事情的最巧妙的方法是什么。一般来说,我发现链接if
难以阅读的块:
var length = null;
if(customers && customers.orders) {
length = customers.orders.length;
}
Called "可选链接 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Optional_chaining”,目前它是一个TC39 第 4 阶段提案 https://github.com/tc39/proposal-optional-chaining. A 巴别塔插件 https://github.com/babel/babel/releases/tag/v7.0.0-alpha.15不过在 v7 中已经可用。
用法示例:
const obj = {
foo: {
bar: {
baz: 42,
},
},
};
const baz = obj?.foo?.bar?.baz; // 42
const safe = obj?.qux?.baz; // undefined
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)