Functional programming 从Javascript代码中删除ifs

Functional programming 从Javascript代码中删除ifs,functional-programming,Functional Programming,我可以在JS函数式编程中不使用if语句进行编程吗 在Haskell中,您可以进行模式匹配: 符号x | x>0=1 |x==0=0 在js中: 如果操作员有以下情况,我可以做速记: sign = x => x > 0 ? 1 (x == 0 ? 0 : x) 如果没有库和上面的?:运算符,我可以将代码缩短吗?这可能不是您想要的答案,但编写此代码的最短方法是: return !!x+0; 解释 !!x将x强制转换为布尔值:x>0==true x=0==false +0强制转换为

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

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

如果操作员有以下情况,我可以做速记:

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

如果没有库和上面的?:运算符,我可以将代码缩短吗?

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

return !!x+0; 
解释
  • !!x将x强制转换为布尔值:x>0==true x=0==false
  • +0强制转换为整数:true=1,false=0
但是,除了使用?:运算符之外,没有其他样式

javascript速记实用性 在javascript中,还有其他有用的技巧,如:

  • 自动地把东西铸成鹅口疮或鹅口疮。(需要布尔值时)
  • Or运算符返回值,便于空合并:
    var name=null | | |'joel'//name='joel'

谢谢,但这只是为了演示目的,所以忽略特定的函数。@user2693928否您只有这些速记运算符吗?:只要您提供一个
else
分支,
if
语句没有问题,正如条件运算符所做的那样。JavaScript没有模式匹配。另外,请注意,如果x为负,则有一个隐式返回。
return !!x+0;