Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
JavaScriptのnullとundefinedの違い
Search
Retasusan
May 29, 2025
Programming
0
88
JavaScriptのnullとundefinedの違い
Kyoto Tech Talk #8
学生LT枠
Retasusan
May 29, 2025
Tweet
Share
Other Decks in Programming
See All in Programming
Node-RED を(HTTP で)つなげる MCP サーバーを作ってみた
highu
0
120
チームのテスト力を総合的に鍛えて品質、スピード、レジリエンスを共立させる/Testing approach that improves quality, speed, and resilience
goyoki
5
930
Railsアプリケーションと パフォーマンスチューニング ー 秒間5万リクエストの モバイルオーダーシステムを支える事例 ー Rubyセミナー 大阪
falcon8823
5
1.1k
「テストは愚直&&網羅的に書くほどよい」という誤解 / Test Smarter, Not Harder
munetoshi
0
180
Agentic Coding: The Future of Software Development with Agents
mitsuhiko
0
110
Result型で“失敗”を型にするPHPコードの書き方
kajitack
5
930
PHP 8.4の新機能「プロパティフック」から学ぶオブジェクト指向設計とリスコフの置換原則
kentaroutakeda
2
940
なぜ「共通化」を考え、失敗を繰り返すのか
rinchoku
1
650
코딩 에이전트 체크리스트: Claude Code ver.
nacyot
0
630
MDN Web Docs に日本語翻訳でコントリビュートしたくなる
ohmori_yusuke
1
130
地方に住むエンジニアの残酷な現実とキャリア論
ichimichi
5
1.6k
Is Xcode slowly dying out in 2025?
uetyo
1
280
Featured
See All Featured
Adopting Sorbet at Scale
ufuk
77
9.5k
Navigating Team Friction
lara
187
15k
VelocityConf: Rendering Performance Case Studies
addyosmani
332
24k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
29
2.7k
Thoughts on Productivity
jonyablonski
69
4.7k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
45
7.5k
The Invisible Side of Design
smashingmag
301
51k
Git: the NoSQL Database
bkeepers
PRO
430
65k
Code Review Best Practice
trishagee
69
19k
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
PRO
20
1.3k
Producing Creativity
orderedlist
PRO
346
40k
Transcript
JavaScript の nullとundefined の違い それっぽくそれなりに @Retasusan 2025/5/29 kyoto tech talk
自己紹介 • @Retasusan ◦ @retasusan_510 • 普段は大学生 ◦ 最近レポートが苦しい… •
Ruby on RailsとViteで アプリを作っている • 昨日クロスバイク購入 現実の姿 インターネットの姿
縦置きされる自転車
nullとundefined を 使い分けていますか?
そもそもnullとundefinedって何? • null ◦ プリミティブ型の一つ ◦ リテラル ◦ 代入すべき値が存在しないこと明示するときに使われがち? https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Operators/null
• undefined ◦ プリミティブ型の一つ ◦ グローバルオブジェクトのプロパティ ◦ 値が代入されていない時とかに使われる? https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/undefined
いろんな関数で比較してみた • nullとundefined、引数なしを渡した時の関数の挙動の違い
typeof演算子
typeof演算子 • 引数がなし ◦ undefined • undefined ◦ undefined •
null ◦ object
等価演算子・厳密等価演算子
等価演算子・厳密等価演算子 • 等価演算子 ◦ 暗黙の型変換でnullと undefinedが等しく扱われる • 厳密等価演算子 ◦ 引数なしとundefinedは
等しい ◦ nullは等しくない
デフォルト引数
デフォルト引数 • 引数がなし、undefined ◦ デフォルト値 • null ◦ null
ちょっと有名なやつ
isNaN関数
isNaN関数 • 引数なし(undefined), undefined ◦ true(NaN) • null ◦ false(数値)
• 数値 + undefined ◦ true(NaN) • 数値 + null ◦ false(数値) • 数値 ◦ false(数値)
isNaN関数(余談)
isNaN関数(余談) • 真偽値と文字列の数値 ◦ false(数値になる) • NaN ◦ true •
NaN === NaN ◦ false ◦ 等価演算子だと比較できないから isNaN関数がある
Number関数
Number関数 • 引数なし ◦ 0 • null ◦ 0 •
undefined ◦ NaN • これがisNaN関数の中で動いてる
なんか意外だったやつ
JSON.stringify()
JSON.stringify() • 通常のJSオブジェクト ◦ nullとundefinedを保持 • JSONオブジェクト ◦ undefinedは無効な値 ◦
プロパティごと無視される • JSON配列 ◦ undefinedはnullに置換され る
Date関数
Date関数 • 引数なし ◦ 現在時刻 • null ◦ UNIXエポック •
undefined ◦ Invalid Date
まとめ • nullとundefinedでは挙動が違うことがよくある • undefinedと引数なしは同じ挙動のことが多い ◦ 稀に違う
JavaScript の nullとundefined の違い それっぽくそれなりに @Retasusan 2025/5/29 kyoto tech talk