エントリーの編集
![loading...](https://b.st-hatena.com/bdefb8944296a0957e54cebcfefc25c4dcff9f5f/images/v4/public/common/loading@2x.gif)
エントリーの編集は全ユーザーに共通の機能です。
必ずガイドラインを一読の上ご利用ください。
記事へのコメント26件
- 注目コメント
- 新着コメント
![arx0balest arx0balest](https://cdn.profile-image.st-hatena.com/users/arx0balest/profile.png)
arx0balest
良記事。私は文中の通りTSチームのundefined推奨に従ってる。それで特に問題起きてない。逆にnullとundefinedを使い分けたりしてる方が地獄。
●null
●javascript
●typescript
●仕様
![gfx gfx](https://cdn.profile-image.st-hatena.com/users/gfx/profile.png)
gfx
いちTypeScript userとしては「TypeScriptではundefinedを多用する」というのは賛成しかねるなあ。「TS compilerでは」ならガイドラインにそう書いてあるのでそうですねというほかないけれど。
![kotas kotas](https://cdn.profile-image.st-hatena.com/users/kotas/profile.png)
kotas
“value !== null && value !== undefined という(個人的には見るに堪えない)コードが量産されました” たぶん value != null と書けば良いという話だと思うのだけど、==が複雑怪奇すぎるのでeqeqeqはalways派です…
![fmn10 fmn10](https://cdn.profile-image.st-hatena.com/users/fmn10/profile.png)
fmn10
リテラル以外に生まれにくい null を使わず Undefined のみを使う null撲滅派と Undefined を極力使わず null と同一視して比較演算する両立派。前者はTSと相性がいいが、わたしは後者。
![shingo-sasaki-0529 shingo-sasaki-0529](https://cdn.profile-image.st-hatena.com/users/shingo-sasaki-0529/profile.png)
shingo-sasaki-0529
意思を持って null と undefined を使い分けても、サードパーティライブラリがその意思と異なる返し方をしたときにそれを吸収するしんどさがあるから、記事に書いてる通り JSON や型変換のとき以外はもう何も考えまい。
![yarumato yarumato](https://cdn.profile-image.st-hatena.com/users/yarumato/profile.png)
yarumato
“私のようなundefined撲滅過激派は、TypeScriptの思想と真っ向から対立しています。TypeScriptは﹁undefinedを使え。null使うな﹂とnull撲滅過激派です。﹁言語でundefinedが頻出するならnullは不要﹂が理由のようだ”
![sa-yama321 sa-yama321](https://cdn.profile-image.st-hatena.com/users/sa-yama321/profile.png)
sa-yama321
他人の書いた nullとundefined が区別されてないからおきてるバグの発見に数日苦労したりする経験すれば区別しないとだめとわかる。null使わないのはよい判断。冗長ならisNullOrUndefined関数を書く努力をなぜおしむのかな。
![xlc xlc](https://cdn.profile-image.st-hatena.com/users/xlc/profile.png)
xlc
delete obj.key と obj.key = undefined は同じ動作をして欲しいよな。JSON化すると同じになるのね。一般的には null と undefined は同じものと扱える方がバグは少ないと思うよ。
![joltkun joltkun](https://cdn.profile-image.st-hatena.com/users/joltkun/profile.png)
joltkun
“0 や 空文字列のような falsy な値は受け付けつつ、null と undefined を弾きたい、という場面において、﹁null とのゆるい比較演算子による比較﹂は歴史的にもよく使われています。覚えておくと良いでしょう。”
●JavaScript
●null
●undefined
![mayumayu_nimolove mayumayu_nimolove](https://cdn.profile-image.st-hatena.com/users/mayumayu_nimolove/profile.png)
mayumayu_nimolove
説明が長いなぁ。まず違いをわかりやすく言わないでいきなり比較演算子の話になってるのも初心者はわからんだろうな。こう言うことだよ、それを判別する式はこうだよ、以上、でいいのでは
![arx0balest arx0balest](https://cdn.profile-image.st-hatena.com/users/arx0balest/profile.png)
arx0balest
良記事。私は文中の通りTSチームのundefined推奨に従ってる。それで特に問題起きてない。逆にnullとundefinedを使い分けたりしてる方が地獄。
●null
●javascript
●typescript
●仕様
![kotas kotas](https://cdn.profile-image.st-hatena.com/users/kotas/profile.png)
kotas
“value !== null && value !== undefined という(個人的には見るに堪えない)コードが量産されました” たぶん value != null と書けば良いという話だと思うのだけど、==が複雑怪奇すぎるのでeqeqeqはalways派です…
![mjy mjy](https://cdn.profile-image.st-hatena.com/users/mjy/profile.png)
mjy
TypeScriptでは﹁値が無い﹂ことを示す型がundefinedだという話で、undefinedを値として多用する必要は無い。﹁値が無い﹂場合は単に書かない。JavaScriptの典型的なコードに型を付け易くしているだけなので、そこは変らない。
![turanukimaru turanukimaru](https://cdn.profile-image.st-hatena.com/users/turanukimaru/profile.png)
turanukimaru
極論、null が存在するのは設計ミス。未設定や想定外のデータを undefined とするほうが理屈には合っている。例えば今、私の頭髪は宣言してないので undefined であり NaN だが null でも 0 でもない!断じてないわけではない!
![gfx gfx](https://cdn.profile-image.st-hatena.com/users/gfx/profile.png)
gfx
いちTypeScript userとしては「TypeScriptではundefinedを多用する」というのは賛成しかねるなあ。「TS compilerでは」ならガイドラインにそう書いてあるのでそうですねというほかないけれど。
注目コメント算出アルゴリズムの一部にLINEヤフー株式会社の「建設的コメント順位付けモデルAPI」を使用しています
![アプリのスクリーンショット](https://b.st-hatena.com/bdefb8944296a0957e54cebcfefc25c4dcff9f5f/images/v4/public/entry/app-screenshot.png)
いまの話題をアプリでチェック!
- バナー広告なし
- ミュート機能あり
- ダークモード搭載
関連記事
JavaScript の undefined と null を完全に理解する
JavaScript で頻出する undefined と null について語ります。 言語仕様上の違い JavaScript (ECMAScrip...
JavaScript で頻出する undefined と null について語ります。 言語仕様上の違い JavaScript (ECMAScript) において、仕様上 undefined と null は当然ながら明確に区別されています。いくつか言語仕様上の扱いについて挙げてみます。 比較 厳密な比較演算子 === において undefined と null は区別されます。ゆるい比較演算子 == においては両者は区別されません︵仕様 7.2.14︶。 console.log(undefined === null); // false console.log(undefined == null); // true 他の falsy な値︵false とみなされる値︶との比較は、ゆるい比較演算子であっても区別されます︵仕様 同上︶。 console.log(undefined == fa
2022/10/17 リンク