在Javascript中解析布尔或字符串args的巧妙方法?

时间:2014-04-29 17:57:51

标签: javascript

寻找一种干净而巧妙的方法来编写以下代码:

'true'true返回'true'

'false'false''undefined返回'false'

3 个答案:

答案 0 :(得分:2)

var getBoolAsString = function (x) {
  if (x === 'false' || !x) {
    return 'false';
  } else {
    return 'true';
  }
}

JSFiddle test cases

以上内容涵盖了您发布的案例,以及'false'其他虚假值,例如nullzero'true'

虽然这看起来像反模式。为什么需要将布尔值作为字符串?

答案 1 :(得分:0)

function isKindaTruth(val) {
   var truthValues = ['true', true];
   var falseValues = ['false', false, '', undefined];

   if (truthValues.indexOf(val) !== -1) {
     return 'true';
   }

   if (falseValues.indexOf(val) !== -1) {
     return 'false';
   }

   function ValueException(message) {
     this.message = message;
     this.name = "ValueException";
   }

   throw new ValueException("Value of " + val + " is not expected or wanted.");
}

答案 2 :(得分:0)

我实际上最终做了什么:

var output = 'api parameter=' + !(!input || input === 'false')