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
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Retasusan
May 29, 2025
Programming
0
110
JavaScriptのnullとundefinedの違い
Kyoto Tech Talk #8
学生LT枠
Retasusan
May 29, 2025
Tweet
Share
Other Decks in Programming
See All in Programming
CSC307 Lecture 06
javiergs
PRO
0
680
360° Signals in Angular: Signal Forms with SignalStore & Resources @ngLondon 01/2026
manfredsteyer
PRO
0
120
AIエージェントのキホンから学ぶ「エージェンティックコーディング」実践入門
masahiro_nishimi
5
370
FOSDEM 2026: STUNMESH-go: Building P2P WireGuard Mesh Without Self-Hosted Infrastructure
tjjh89017
0
160
AI Agent Tool のためのバックエンドアーキテクチャを考える #encraft
izumin5210
6
1.8k
AI によるインシデント初動調査の自動化を行う AI インシデントコマンダーを作った話
azukiazusa1
1
700
今こそ知るべき耐量子計算機暗号(PQC)入門 / PQC: What You Need to Know Now
mackey0225
3
370
余白を設計しフロントエンド開発を 加速させる
tsukuha
7
2.1k
Apache Iceberg V3 and migration to V3
tomtanaka
0
160
それ、本当に安全? ファイルアップロードで見落としがちなセキュリティリスクと対策
penpeen
7
3.8k
カスタマーサクセス業務を変革したヘルススコアの実現と学び
_hummer0724
0
670
The Past, Present, and Future of Enterprise Java
ivargrimstad
0
520
Featured
See All Featured
Building AI with AI
inesmontani
PRO
1
690
WENDY [Excerpt]
tessaabrams
9
36k
Technical Leadership for Architectural Decision Making
baasie
1
240
Bootstrapping a Software Product
garrettdimon
PRO
307
120k
It's Worth the Effort
3n
188
29k
Impact Scores and Hybrid Strategies: The future of link building
tamaranovitovic
0
200
The Impact of AI in SEO - AI Overviews June 2024 Edition
aleyda
5
730
Code Review Best Practice
trishagee
74
20k
Why Your Marketing Sucks and What You Can Do About It - Sophie Logan
marketingsoph
0
72
Building a Scalable Design System with Sketch
lauravandoore
463
34k
Optimizing for Happiness
mojombo
379
71k
The Organizational Zoo: Understanding Human Behavior Agility Through Metaphoric Constructive Conversations (based on the works of Arthur Shelley, Ph.D)
kimpetersen
PRO
0
240
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