几个有趣的javascript语法(提议)

Optional Chaining(可选链) for JavaScript

a?.b;
// 等同于
a == null ? undefined : a.b;
// 注意 == null的判断
// null == null  : true
// undefined == null :true
// 0 == null :false
// '' == null :false

Nullish Coalescing(空值合并) for JavaScript

a ?? 'haha';
// 仅当a为null或undefined时返回'haha',否则返回a的值

Pipeline(管道)

//左边输出作为右边第一个输入
function doubleSay(str) {
  return str + ', ' + str;
}
function capitalize(str) {
  return str[0].toUpperCase() + str.substring(1);
}
function exclaim(str) {
  return str + '!';
}
let result = exclaim(capitalize(doubleSay('hello')));
result; //=> "Hello, hello!"
// 等同于
let result = 'hello' |> doubleSay |> capitalize |> exclaim;

result; //=> "Hello, hello!"

Partial Application(偏函数)

const addOne = add.bind(null, 1);
addOne(2); // 3

// 等同于
const addOne = add(1, ?);
addOne(2); // 3

这个和管道配合比较方便

let newScore = player.score
  |> add(7, ?)
  |> clamp(0, 100, ?);

这些语法目前都是提议阶段


Total views.

© 2013 - 2019. All rights reserved.

Powered by Hydejack v6.6.1