2016-06-25 10 views
2

機能を使用して番号が均等であることを確認したい場合はJavascriptに戻ります。ここで私のコードに行きます。 numberがそれ以外の場合はfalseを返すはずです。JavaScriptを文字列で返します

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

コードが機能しません。代わりにtrueとfalseの前後の引用符( "...")が削除されたときに機能します。どうして?真と偽という言葉は文字列なので、引用符で囲む必要があります。 それが必要、助けてください

+0

trueとfalseは文字列ではなくブール値です。 – gcampbell

+1

最も簡単な方法は 'function isEven(num){return num%2 === 0}'です。 – gcampbell

答えて

4

作品:追加で

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

isOdd作成する方法:あなたがブールのために "true" を返すことができない理由

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

理由:

「...」とマークの間にあるものはすべてjavacriptで認識されますstring。また、これは、空の文字列""、いくつかの例に適用されます:あなたは、文字のサイズにFEを注意を払わなければならない他の言語と

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

比較:追加で

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

==を使用することを検討することおよび===。例:ビルドでBoolean関数の

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

いくつかの例:

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

ここでは 'ブール'の使用は必要ありません。 'return!(number%2);'を使うだけです。 – Xufox

4

あなたが引用符でtruefalseを置く場合"true"が文字列であるので、それはtrueのに対し、文字列値を返します。そうではありません。ブール値を返す場合は、trueまたはfalseを返します。

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

あなたはあなたがすべてでifを必要としないこの

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

0

のようにやってみてください。比較の結果を返すだけです

var isEven = function(number) { 
    return number%2 === 0; 
}; 
関連する問題