在JavaScript函数中返回布尔值true或false

在JavaScript函数中返回布尔值true或false,javascript,Javascript,当布尔值为false时,我无法让函数返回提供的语句 尝试将布尔()添加到代码中,尝试使每个可能的结果看起来像 singleArg“0”| | singleArg“某物”等 函数Istruty(singleArg){ 让isitTrue=''; 如果(singleArg=='somecontent'| | 1 | |[2,3,4]{ 姓名:“亚历克斯” }) { isitTrue=真; }else if(singleArg==false | | | | | | |未定义| | 0 | |“”){

当布尔值为false时,我无法让函数返回提供的语句

尝试将布尔()添加到代码中,尝试使每个可能的结果看起来像

singleArg“0”| | singleArg“某物”等

函数Istruty(singleArg){
让isitTrue='';
如果(singleArg=='somecontent'| | 1 | |[2,3,4]{
姓名:“亚历克斯”
}) {
isitTrue=真;
}else if(singleArg==false | | | | | | |未定义| | 0 | |“”){
isitTrue=='布尔值false为Falsy';
isitTrue==='空值为false';
isitTrue==='未定义为错误';
isitTrue==='数字0为假';
isitTrue=='空字符串为假字符串(唯一的假字符串)';
}
回归真实;
}

log(isTruthy('somecontent'))它总是会返回true,因为在第一个if块中有| | 1。结果总是正确的

如果希望将
singleArg
与值1进行比较,则需要编写
singleArg=='somecontent'| | singleArg==1…

另外,对于第二个if块,所有这些值的计算结果都是false。实际上,您可以简单地编写:

if (!singleArg)

无论值是false、null、未定义、0还是空字符串,它都将返回false。

正如人们已经指出的,您只需检查
!布尔值(arg)

以下是关于如何重新编写函数的建议:

function isTruthy(singleArg) {
  if ( !Boolean(singleArg) ) {
    switch( typeof singleArg ) {
      case "boolean":
        console.log( "The boolean value false is falsey" );
        break;

      case "object":  // typeof null is an object
        console.log( "The null value is falsey" );
        break;

      case "undefined":
        console.log( "undefined is falsey" );
        break;

      case "number":
        console.log( "The number 0 is falsey" );
        break;

      case "string":
        console.log( "The empty string is falsey (the only falsey string)" );
        break;

      default:
        console.log( "NaN?" );
        console.log( typeof singleArg );
        break;
    }
    return;
  }
  console.log( true );
}

isTruthy();
您可以采取一种直接检查值的方法

在这种情况下,使用a可以省略a,因为
return
终止函数的执行,因此
开关

函数的真实性(值){
开关(值){
案例错误:
返回“布尔值false为falsy”;
大小写为空:
返回“空值为falsy”;
未定义的情况:
返回“未定义为虚假”;
案例0:
返回“数字0为falsy”;
案例“”:
返回“空字符串为falsy(唯一的falsy字符串)”;
}
返回布尔值;
}
console.log(isTruthy(false));
log(isTruthy(null));
console.log(isTruthy(未定义));
控制台日志(isTruthy(0));
控制台日志(isTruthy(“”));
console.log(isTruthy(NaN));//假的
console.log(isTruthy(true));
log(isTruthy({}));
控制台日志(isTruthy(1e3));
console.log(isTruthy('yes!'))
.as控制台包装{max height:100%!important;top:0;}
函数istruty(singleArg){return Boolean(singleArg);}
。您的if语句也是无效的。您不能这样做:
if(singleArg==false | | | null | | |未定义| | 0 | |“”)
。您需要完整地写出它,比如
if(singleArg==false | | singleArg==null
等等。