4
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

(変数)?true:falseは良いのかどうか?(javascript)

Last updated at Posted at 2019-11-07

(変数)?true:falseは良いのかどうか?

結論

個人の見解の部分が多いですが
(変数)?true:falseは可読性は高く保てますが、ベストではありません。
二重否定の!! 変数が最高です。
短いことが可読性向上につながります。

具体例

〇〇〇〇には何を入るべきか?
1から順番に良いと考えています。

  1. !! is_true
  2. Boolean(is_true)
  3. is_true ? true : false
  4. is_true || false
  5. is_true

function isTrue(){
  let is_true;
  // 処理
  return 〇〇〇〇
}

なぜ二重否定がベストで、そのまま返すのが悪いのか?

1か2、3でないと、Booleanではない値が返ってくる場合があります。

代入し忘れ

例えば、処理部でis_trueへの代入を忘れた場合、以下の結果になります。

  1. !! is_true=>false
  2. Boolean(is_true)=>false
  3. is_true ? true : false=>false
  4. is_true || false=>false
  5. 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以外を代入した場合、以下の結果になります。

  1. !! is_true=>true
  2. Boolean(is_true)=>true
  3. is_true ? true : false=>true
  4. is_true || false=>{}
  5. is_true=>{}
const result = isTrue()
console.log(result)
function isTrue(){
  let is_true;
  is_true={}
  return 〇〇〇〇
}
4
1
6

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?