タグ

undefinedに関するtest_testerのブックマーク (2)

  • JavaScriptの生きてるundefinedと死んでるundefined - mizchi's blog

    JavaScriptの悪魔的な振る舞いの一つにundefinedがあると思う。 javascriptには存在するundefinedと存在しないundefinedがあるし、それはつまり [undefined].length => 1 だ— 俺は平気だよ (@mizchi) 2014, 4月 22 JavaScript、[undefined].length => 1 で arr = []; arr[0] = undefined; だけど、このとき前者のundefinedと後者のundefinedは性質的には別物ですよ— 俺は平気だよ (@mizchi) 2014, 4月 22 もう一つの例として、 obj = {}; のとき obj[‘a’] = undefined したとき、for i in obj するとイテレータが一回だけ回る。obj[‘a’] = undefined しても キーは消え

    JavaScriptの生きてるundefinedと死んでるundefined - mizchi's blog
  • 二重論理否定

    よくif文などに用いられる判定文で、!!という論理否定を二重にしたステートメントに出くわすことがある。 具体的には次のようなコードだ。 if(!!obj)//objがundefinedでないときの処理 なぜこのようなことが必要なのか? 通常undefinedであればfalseが返るはずであり、単純にif(obj)でいいのではないだろうか? 実はundefinedをfalseに変換しない古いブラウザやバグのあるブラウザなどに対処するために、わざわざこのようなことをしているようだ。 undefinedというプリミティヴ値自体がJavaScript1.3から定義されるようになったものであり、 古いブラウザやMac+IE5なんかだと単なるif(obj)という式自体がエラーになってしまうらしい。 よく海外の古いソースコードを見ていると、変数にfalseになるような値を代入して初期化しているのを見かけ

  • 1