从Javascript代码中删除ifs

时间:2018-05-02 13:25:37

标签: functional-programming

我可以在JS中使用函数式编程中的if语句进行编程吗?

在Haskell中,您可以进行模式匹配: 签署x | x> 0 = 1        | x == 0 = 0 在js:

sing = x => {
  if (x > 0) return 1;
  else if (x == 0) return 0
}

如果操作员有这样的话,我可以做速记:

sign = x => x > 0 ? 1 (x == 0 ? 0 : x)

我可以在没有库和上面的?:运算符的情况下缩短代码吗?

1 个答案:

答案 0 :(得分:1)

这可能不是您要找的答案,但编写此代码的最短方法是:

return !!x+0; 

解释

  • !! x将x转换为布尔值:x> 0 == true x = 0 == false;
  • + 0强制转换为整数:true = 1,false = 0。

但没有其他风格而不是使用?:operator。

javascript简写有用性

在javascript中你还有其他有用的技巧:

  • 自动将事物投入到惩罚或虚假中。 (当需要布尔值时)
  • 或者运算符返回值,很容易进行空合并:var name = null || 'joel' // name = 'joel'