布尔返回的Javascript函数

时间:2012-04-23 18:47:20

标签: javascript boolean equality

我在Codecademy的Javascript教程4.1节中获得了一个正确的布尔返回问题。这是代码:

// Define quarter here.
var quarter = function(n) {
    if (n / 4 ){
        return true;
    } else {
        return false;
    }
};

if (quarter(4) === 1) {
  console.log("The statement is true.");
} else {
  console.log("The statement is false.");
}

从我所看到的,我将新定义的四分之一变量传递给一个参数为'n'的函数,然后我将其除以4以查看它是返回1表示true,还是0(else)表示false。然后我在if循环中使用'quarter'函数来检查传递为'n'的数字'4'中的1的相等性。

我假设这是一些我不习惯使用的基本逻辑(作为希望进入JavaScript编程的前端开发人员),但我肯定会感谢一些想法和指导。

5 个答案:

答案 0 :(得分:12)

在JavaScript中,常量truefalse不是数字;他们是一个单独的类型。

此外,您正在与===进行比较,这会在比较期间明确阻止类型转换。

请注意n / 4对于除“0”之外的所有“n”值都将为true(非零)( edit 您可能意味着使用{{1} }})。一般来说,任何形式的构造:

%

可以替换为:

if (expression) {
  return true;
}
else {
  return false;
}

或者,

return !!(expression);

答案 1 :(得分:2)

将if语句更改为一致,因为1!= true。三等于不允许它。

if (quarter(4) == true) {

你的功能也是不正确的,我觉得你想要更像这样的东西,如果可被4整除则返回:

var quarter = function(n) {
  if (n % 4 == 0){
    return true;
  } else {
    return false;
  }
};

这可以缩短为:

var quarter = function(n) {
   return n % 4 == 0;
}

答案 2 :(得分:2)

使用===意味着你要求“严格等于” - 不是真或假。这意味着您无法检查号码,因为号码不是严格true。请参阅this SO question for more details

调用代码应检查=== true,或者只是跳过显式值比较,只需if (quarter(4)) { ...

答案 3 :(得分:0)

无法在这里找到有效的答案,所以我想我只是错过了它。我还发现谷歌搜索解决方案让我的事情变得更糟。

我倾向于发现我在Javascript中推翻了解决方案,这显然导致无法解决问题。

您也不一定需要return true,但无论如何我都添加了它。

请记住逻辑上有序的简单性是关键。


    var quarter = function(number) {
        var number = n / 4;
        var n = 48;
    if (quarter(number) % 3 === 0 ) {
        console.log("The statement is true");
        return true;
    } else {
        console.log("The statement is false");
        }
    }

我希望这适合你。

我会利用自己缺乏的JavaScript技能和知识向像我这样的初学者和你这样解释这一点。任何对JavaScript有着极大了解的人都可能会有不同意见,但这也是为什么大多数编程雇主每天都会在程序员中选择一个通信专业的原因:

  1. 定义一个名为quarter的函数,意味着您要定义一个函数 - quarter - 但您必须先定义四分之一 - var
    var quarter = function(number) 
  2. 该函数返回一个等于
    n / 4
    的值。函数定义为
    quarter(number)
    值为数字
    然后引入一个新的var使用
    number = n / 4
  3. 定义值
  4. 要返回true并开始if语句,

    function(number or n)
    现在 quarter ,即您正在定义的函数。

  5. 提供正确等式的基础依赖于它以

    console.log("The statement is true!")
    的形式返回true。然后通过定义带有数字的 n 来执行此操作划分 4 ,然后该数字可以除以3而没有余数。因为数字已定义为
    n / 4
    ,在此示例中将 n 定义为 48
    quarter(number)
    quarter(n)
    都适用于 if / else 语句。
    要在除以3后得到余数0,请使用
    % 3 === 0

    1. 所以
      if (quarter(number) % === 3 {
      现在是已定义的函数 quarter。
      number
      是一个参数,您可以使用变量
      var number = n / 4
      和变量
      var n = 48
      来分配参数的值。
      
          var quarter = function(number) { 
                    if (quarter(48) % 3 === 0) {
                       console.log("This statement is true!");
                       return number = number / 4;
                    } else { 
                        console.log("This statement is false.");
                  };
               };
      
      
  6. 就此而言,正如我打字一样,从理论上讲,这也会起作用并缩短:

    {{2}}

答案 4 :(得分:0)

好吧,这个愚蠢的事情是超级挑剔的。我现在要揭开它的神秘面纱。 您的代码应如下所示:

var quarter = function (number) {
return number/4;
}
if (quarter(48) % 3 === 0 ) {
console.log("The statement is hella true");
} else {
console.log("The statement is hella false brah");
}

你没有通过模块的原因是因为quarter(n)括号中的愚蠢数字必须返回true语句。 选择一个数字,任意数字并乘以(3)然后乘以(4);这将为您提供一个值,使模数%为零,并使您的if / else语句为真。

我对世界的贡献, -Aaron