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
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
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
コントリビューターによるDenoのすゝめ / Deno Recommendations by a Contributor
petamoriken
0
200
Rust 製のコードエディタ “Zed” を使ってみた
nearme_tech
PRO
0
150
ThorVG Viewer In VS Code
nors
0
770
カスタマーサクセス業務を変革したヘルススコアの実現と学び
_hummer0724
0
660
AtCoder Conference 2025
shindannin
0
1k
それ、本当に安全? ファイルアップロードで見落としがちなセキュリティリスクと対策
penpeen
7
2.4k
フルサイクルエンジニアリングをAI Agentで全自動化したい 〜構想と現在地〜
kamina_zzz
0
400
登壇資料を作る時に意識していること #登壇資料_findy
konifar
4
1k
OSSとなったswift-buildで Xcodeのビルドを差し替えられるため 自分でXcodeを直せる時代になっている ダイアモンド問題編
yimajo
3
610
高速開発のためのコード整理術
sutetotanuki
1
390
CSC307 Lecture 08
javiergs
PRO
0
670
CSC307 Lecture 02
javiergs
PRO
1
770
Featured
See All Featured
Exploring the relationship between traditional SERPs and Gen AI search
raygrieselhuber
PRO
2
3.6k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
17k
Agile Actions for Facilitating Distributed Teams - ADO2019
mkilby
0
110
SEO in 2025: How to Prepare for the Future of Search
ipullrank
3
3.3k
Six Lessons from altMBA
skipperchong
29
4.1k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
12
1.4k
Designing for humans not robots
tammielis
254
26k
AI Search: Where Are We & What Can We Do About It?
aleyda
0
6.9k
A Modern Web Designer's Workflow
chriscoyier
698
190k
Intergalactic Javascript Robots from Outer Space
tanoku
273
27k
A Guide to Academic Writing Using Generative AI - A Workshop
ks91
PRO
0
200
Art, The Web, and Tiny UX
lynnandtonic
304
21k
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