【问题标题】:return a string in javascript在javascript中返回一个字符串
【发布时间】:2016-10-27 21:59:15
【问题描述】:

我想通过 function 来检查一个数字是否是偶数并在 Javascript 中返回。这是我的代码。当 number 为偶数时它应该返回 true,否则它应该返回 false。

var isEven = function(number) {
    if(number%2 === 0) {
        return "true";
    } else {
        return "false";
    }
};

代码不起作用。相反,当 true 和 false 周围的引号 ("...") 被删除时,它会起作用。为什么?我的意思是 true 和 false 是字符串,因此应该包含在引号内。 请帮忙,

【问题讨论】:

  • truefalse 是布尔值,而不是字符串。
  • 最简单的方法就是function isEven (num) { return num % 2 === 0 }

标签: javascript string return


【解决方案1】:

如果将truefalse 放在引号中,它将返回一个字符串值,因为"true" 是一个字符串,而true 不是。如果要返回布尔值,只需返回 truefalse

if(number % 2 === 0) return true;
else return false;

【讨论】:

    【解决方案2】:

    它应该可以工作:

    var isEven = function(number) {
        return !Boolean(number % 2);
    };
    

    另外如何创建isOdd:

    var isOdd = function(number) {
        return !isEven(number);
    };
    

    您不能为布尔值返回“true”的原因:

    javascript 中标记“...”之间存在的所有内容都被识别为string 类型。这也适用于空字符串"",一些例子:

    typeof("") => "string"
    typeof("true") => "string"
    typeof(true) => "boolean"
    

    与其他语言比较你要注意的字符大小,fe:

    typeof(TRUE) => "undefined" (because it could be name of variable)
    

    另外: 考虑使用=====。示例:

    "" == 0 => it's a true
    "" === 0 => it's a false
    

    内置Boolean函数的一些示例:

    Boolean("") => false
    Boolean("1") => true
    Boolean("0") => true
    

    【讨论】:

    • 这里不需要使用Boolean。只需使用return !(number % 2);
    【解决方案3】:

    你可以试试这样

    var isEven = n => !(n%2);
    console.log(isEven(1));
    console.log(isEven(2));

    【讨论】:

      【解决方案4】:

      您根本不需要if。只返回比较的结果

      var isEven = function(number) {
         return number%2 === 0;
      };
      

      【讨论】:

        猜你喜欢
        • 2012-12-14
        • 2011-01-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-01-19
        • 2013-03-17
        • 2012-10-15
        相关资源
        最近更新 更多