(変数)?true:falseは良いのかどうか?
結論
個人の見解の部分が多いですが
(変数)?true:false
は可読性は高く保てますが、ベストではありません。
二重否定の!! 変数
が最高です。
短いことが可読性向上につながります。
具体例
〇〇〇〇には何を入るべきか?
1から順番に良いと考えています。
!! is_true
Boolean(is_true)
is_true ? true : false
is_true || false
is_true
function isTrue(){
let is_true;
// 処理
return 〇〇〇〇
}
なぜ二重否定がベストで、そのまま返すのが悪いのか?
1か2、3でないと、Booleanではない値が返ってくる場合があります。
代入し忘れ
例えば、処理部でis_trueへの代入を忘れた場合、以下の結果になります。
-
!! is_true
=>false
-
Boolean(is_true)
=>false
-
is_true ? true : false
=>false
-
is_true || false
=>false
-
is_true
=>undefined
const i = 0
const result = isTrue()
console.log(result)
function isTrue(){
let is_true;
if(i>100)
is_true=true
return 〇〇〇〇
}
代入する型間違え
例えば、処理部でis_trueへboolean以外を代入した場合、以下の結果になります。
-
!! is_true
=>true
-
Boolean(is_true)
=>true
-
is_true ? true : false
=>true
-
is_true || false
=>{}
-
is_true
=>{}
const result = isTrue()
console.log(result)
function isTrue(){
let is_true;
is_true={}
return 〇〇〇〇
}