function myFunc(trueOrFalse) {
return trueOrFalse ? true : false
}
上面的函数可以写成myFunc(trueOrFalse) => trueOrFalse
,但是如果不存在trueOrFalse怎么办?这就是为什么我写第一个函数显式在布尔值中返回true或false。
答案 0 :(得分:2)
你可以加倍否定那个对象。
基本上,它用于将truthy
- falsy
值转换为布尔值。 Reference
var myFunc = (trueOrFalse)=> !!trueOrFalse;
console.log(myFunc());
console.log(myFunc('hello'));
console.log(myFunc(true));
console.log(myFunc(false));
.as-console-wrapper { max-height: 100% !important; top: 0; }
答案 1 :(得分:0)
使用EcmaScript6可以在函数参数中设置默认值 比如
function myFunc(trueOrFalse = false){
return trueOrFalse ? true : false;
}
ECMASCRIPT6和IE 并非IE 11或更低版本支持EcmaScript6的所有方面,这意味着如果在函数参数中设置默认值,则会出现问题
答案 2 :(得分:0)
没有赋值的函数参数是undefined
,它是falsy
值。所以你可以写:
function myFunc(trueOrFalse) {
return trueOrFalse
}
致电myFunc()
将返回undefined
falsy
。请注意falsy
不等于false
:
if(false) {
// it will not be executed
}
if(undefined){
// it will not be executed
}
// but:
false == undefined // false
因此,根据您的需求,您需要将其转换为false
,一种方法可能正在使用default parameters:
function myFunc(trueOrFalse = false) {
return trueOrFalse
}
现在调用myFunc()
将返回false
,例如。