Javascript即将到来的3个新特性

一、Optional Chaining(可选链式调用)javascript

const data = {
  user: {},
};
console.log(data.user.address.street); 
// Uncaught TypeError: Cannot read property 'street' of undefined
复制代码

这是咱们如今 ES6 中会遇到的问题,缘由是 user 中没有 address 对象,而后咱们这样判断:java

const street = data && data.user && data.user.address && data.user.address.street;
console.log(street); // undefined
复制代码

这样的写法不好劲安全

新特性能够这样写( ?. 相似于angular5的安全操做符)bash

console.log(data.user?.address?.street) //undefined
复制代码

二、Nullish coalescing(空值合并)
咱们判断空值通常这样:app

value != null ? value : 'default value';
复制代码

或者这样:函数

value || 'default value'
复制代码

新特性能够这样写( ?? ):ui

value ?? 'default value';
复制代码

三、Pipeline operator(管道运算符)
举个例子,经过三个函数对字符串进行处理,一般是这样:spa

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!"
复制代码

经过 管道运算符,咱们能够这样写:code

let result = "hello" |> a |> b |> c     // "Hello, hello!"
复制代码

参考:Here are three upcoming changes to JavaScript that you’ll loveregexp


(完)

相关文章
相关标签/搜索