エントリーの編集
エントリーの編集は全ユーザーに共通の機能です。
必ずガイドラインを一読の上ご利用ください。
記事へのコメント0件
- 注目コメント
- 新着コメント
このエントリーにコメントしてみましょう。
注目コメント算出アルゴリズムの一部にLINEヤフー株式会社の「建設的コメント順位付けモデルAPI」を使用しています
- バナー広告なし
- ミュート機能あり
- ダークモード搭載
関連記事
二重論理否定
よくif文などに用いられる判定文で、!!という論理否定を二重にしたステートメントに出くわすことがある... よくif文などに用いられる判定文で、!!という論理否定を二重にしたステートメントに出くわすことがある。 具体的には次のようなコードだ。 if(!!obj)//objがundefinedでないときの処理 なぜこのようなことが必要なのか? 通常undefinedであればfalseが返るはずであり、単純にif(obj)でいいのではないだろうか? 実はundefinedをfalseに変換しない古いブラウザやバグのあるブラウザなどに対処するために、わざわざこのようなことをしているようだ。 undefinedというプリミティヴ値自体がJavaScript1.3から定義されるようになったものであり、 古いブラウザやMac+IE5なんかだと単なるif(obj)という式自体がエラーになってしまうらしい。 よく海外の古いソースコードを見ていると、変数にfalseになるような値を代入して初期化しているのを見かけ