2016-06-25 102 views
2

我想檢查一個數字是否通過使用函數並返回Javascript。這裏是我的代碼。當數字是偶數時它應該返回true,否則它應該返回false。在javascript中返回一個字符串

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

該代碼不起作用。相反,它適用於刪除真和假周圍的引號(「...」)。爲什麼?我的意思是真實和錯誤是字符串,因此應該包含在引號內。 請大家幫忙,

+0

'真'和'FALSE'是布爾值,而不是字符串。 – gcampbell

+1

最簡單的方法就是'function isEven(num){return num%2 === 0}'。 – gcampbell

回答

4

它應該工作:

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

額外如何創建isOdd

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

理由,你爲什麼不能返回 「真」 布爾:

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 
+0

這裏沒有必要使用'Boolean'。只需使用'return!(數字%2);'。 – Xufox

4

如果你用引號把truefalse,它會返回一個字符串值,因爲"true"是一個字符串,而true不是。如果你想返回一個布爾值,只需返回truefalse

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

您可以嘗試做這樣的

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

0

你不需要if可言。剛剛返回結果的比較

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