Js即将到来的3个新特性
1、Optional Chaining(可选链式调用)
const data = {
user: {},
};
console.log(data.user.address.street);
// Uncaught TypeError: Cannot read property 'street' of undefined这是我们现在 ES6 中会遇到的问题,原因是 user 中没有 address 对象,然后我们这样判断:
const street = data && data.user && data.user.address && data.user.address.street;
console.log(street); // undefined这样的写法很差劲,新特性可以这样写( ?. 类似于angular5的安全操作符)
console.log(data.user?.address?.street) //undefined2、Nullish coalescing(空值合并)
我们判断空值一般这样:value != null ? value : 'default value';或者这样:
value || 'default value'新特性可以这样写( ?? ):
value ?? 'default value';3、Pipeline operator(管道运算符)
举个例子,通过三个函数对字符串进行处理,通常是这样:function a(str) { return str + ", " + str;}
function b(str) {
return str[0].toUpperCase() + str.substring(1);
}
function c(str) {
return str + '!';
}
let result = c ( b ( a("hello") ) ); // "Hello, hello!"通过 管道运算符,我们可以这样写:
let result = "hello" |> a |> b |> c // "Hello, hello!"参考:Here are three upcoming changes to JavaScript that you’ll love
本文内容仅供个人学习、研究或参考使用,不构成任何形式的决策建议、专业指导或法律依据。未经授权,禁止任何单位或个人以商业售卖、虚假宣传、侵权传播等非学习研究目的使用本文内容。如需分享或转载,请保留原文来源信息,不得篡改、删减内容或侵犯相关权益。感谢您的理解与支持!