Javascript即将到来的3个新特性

in 编程
关注公众号【好便宜】( ID:haopianyi222 ),领红包啦~
阿里云,国内最大的云服务商,注册就送数千元优惠券:https://t.cn/AiQe5A0g
腾讯云,良心云,价格优惠: https://t.cn/AieHwwKl
搬瓦工,CN2 GIA 优质线路,搭梯子、海外建站推荐: https://t.cn/AieHwfX9

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) //undefined

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


(完)

关注公众号【好便宜】( ID:haopianyi222 ),领红包啦~
阿里云,国内最大的云服务商,注册就送数千元优惠券:https://t.cn/AiQe5A0g
腾讯云,良心云,价格优惠: https://t.cn/AieHwwKl
搬瓦工,CN2 GIA 优质线路,搭梯子、海外建站推荐: https://t.cn/AieHwfX9
扫一扫关注公众号添加购物返利助手,领红包
Comments are closed.

推荐使用阿里云服务器

超多优惠券

服务器最低一折,一年不到100!

朕已阅去看看