Functional programming 从Javascript代码中删除ifs
我可以在JS函数式编程中不使用if语句进行编程吗 在Haskell中,您可以进行模式匹配: 符号x | x>0=1 |x==0=0 在js中: 如果操作员有以下情况,我可以做速记: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强制转换为
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
- 自动地把东西铸成鹅口疮或鹅口疮。(需要布尔值时)
- Or运算符返回值,便于空合并:
var name=null | | |'joel'//name='joel'
else
分支,if
语句没有问题,正如条件运算符所做的那样。JavaScript没有模式匹配。另外,请注意,如果x为负,则有一个隐式返回。
return !!x+0;