[{"data":1,"prerenderedAt":282},["ShallowReactive",2],{"term-n\u002Fnull":3,"related-n\u002Fnull":268},{"id":4,"title":5,"acronym":6,"body":7,"category":249,"description":250,"difficulty":251,"extension":252,"letter":253,"meta":254,"navigation":75,"path":255,"related":256,"seo":262,"sitemap":263,"stem":266,"subcategory":6,"__hash__":267},"terms\u002Fterms\u002Fn\u002Fnull.md","Null",null,{"type":8,"value":9,"toc":243},"minimark",[10,15,19,23,26,30,232,236,239],[11,12,14],"h2",{"id":13},"eli5-the-vibe-check","ELI5 — The Vibe Check",[16,17,18],"p",{},"Null means 'intentionally nothing' — a programmer chose to say 'there is no value here'. It is a deliberate absence. If a user has no middle name, you might store it as null. It is different from zero (which is something) and from empty string (which is also something). Null is the void.",[11,20,22],{"id":21},"real-talk","Real Talk",[16,24,25],{},"Null is a special value representing the intentional absence of any object value. In JavaScript, null is a primitive assigned explicitly to indicate 'no value'. It differs from undefined (which means a variable was declared but never assigned) and from NaN (which is an invalid number). Tony Hoare, who invented null references, called it his 'billion-dollar mistake' due to the null pointer errors it causes.",[11,27,29],{"id":28},"show-me-the-code","Show Me The Code",[31,32,37],"pre",{"className":33,"code":34,"language":35,"meta":36,"style":36},"language-javascript shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","\u002F\u002F Explicit null — programmer's choice:\nconst middleName = null; \u002F\u002F person has no middle name\n\n\u002F\u002F Checking for null:\nif (middleName === null) { \u002F* handle it *\u002F }\nif (middleName == null) { \u002F* catches both null AND undefined *\u002F }\n\n\u002F\u002F Null vs undefined:\nlet uninitialised;    \u002F\u002F undefined — never assigned\nconst nothing = null; \u002F\u002F null — explicitly set to 'no value'\n\n\u002F\u002F Optional chaining (safe access):\nconsole.log(user?.address?.city ?? 'No city'); \u002F\u002F won't crash if null\n","javascript","",[38,39,40,49,70,77,83,111,132,137,143,158,173,178,184],"code",{"__ignoreMap":36},[41,42,45],"span",{"class":43,"line":44},"line",1,[41,46,48],{"class":47},"sHwdD","\u002F\u002F Explicit null — programmer's choice:\n",[41,50,52,56,60,64,67],{"class":43,"line":51},2,[41,53,55],{"class":54},"spNyl","const",[41,57,59],{"class":58},"sTEyZ"," middleName ",[41,61,63],{"class":62},"sMK4o","=",[41,65,66],{"class":62}," null;",[41,68,69],{"class":47}," \u002F\u002F person has no middle name\n",[41,71,73],{"class":43,"line":72},3,[41,74,76],{"emptyLinePlaceholder":75},true,"\n",[41,78,80],{"class":43,"line":79},4,[41,81,82],{"class":47},"\u002F\u002F Checking for null:\n",[41,84,86,90,93,96,99,102,105,108],{"class":43,"line":85},5,[41,87,89],{"class":88},"s7zQu","if",[41,91,92],{"class":58}," (middleName ",[41,94,95],{"class":62},"===",[41,97,98],{"class":62}," null",[41,100,101],{"class":58},") ",[41,103,104],{"class":62},"{",[41,106,107],{"class":47}," \u002F* handle it *\u002F",[41,109,110],{"class":62}," }\n",[41,112,114,116,118,121,123,125,127,130],{"class":43,"line":113},6,[41,115,89],{"class":88},[41,117,92],{"class":58},[41,119,120],{"class":62},"==",[41,122,98],{"class":62},[41,124,101],{"class":58},[41,126,104],{"class":62},[41,128,129],{"class":47}," \u002F* catches both null AND undefined *\u002F",[41,131,110],{"class":62},[41,133,135],{"class":43,"line":134},7,[41,136,76],{"emptyLinePlaceholder":75},[41,138,140],{"class":43,"line":139},8,[41,141,142],{"class":47},"\u002F\u002F Null vs undefined:\n",[41,144,146,149,152,155],{"class":43,"line":145},9,[41,147,148],{"class":54},"let",[41,150,151],{"class":58}," uninitialised",[41,153,154],{"class":62},";",[41,156,157],{"class":47},"    \u002F\u002F undefined — never assigned\n",[41,159,161,163,166,168,170],{"class":43,"line":160},10,[41,162,55],{"class":54},[41,164,165],{"class":58}," nothing ",[41,167,63],{"class":62},[41,169,66],{"class":62},[41,171,172],{"class":47}," \u002F\u002F null — explicitly set to 'no value'\n",[41,174,176],{"class":43,"line":175},11,[41,177,76],{"emptyLinePlaceholder":75},[41,179,181],{"class":43,"line":180},12,[41,182,183],{"class":47},"\u002F\u002F Optional chaining (safe access):\n",[41,185,187,190,193,197,200,203,206,208,211,214,217,221,224,227,229],{"class":43,"line":186},13,[41,188,189],{"class":58},"console",[41,191,192],{"class":62},".",[41,194,196],{"class":195},"s2Zo4","log",[41,198,199],{"class":58},"(user",[41,201,202],{"class":62},"?.",[41,204,205],{"class":58},"address",[41,207,202],{"class":62},[41,209,210],{"class":58},"city ",[41,212,213],{"class":62},"??",[41,215,216],{"class":62}," '",[41,218,220],{"class":219},"sfazB","No city",[41,222,223],{"class":62},"'",[41,225,226],{"class":58},")",[41,228,154],{"class":62},[41,230,231],{"class":47}," \u002F\u002F won't crash if null\n",[11,233,235],{"id":234},"when-youll-hear-this","When You'll Hear This",[16,237,238],{},"\"Return null if the user is not found.\" \u002F \"Always guard against null before accessing properties.\"",[240,241,242],"style",{},"html pre.shiki code .sHwdD, html code.shiki .sHwdD{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic}html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .s7zQu, html code.shiki .s7zQu{--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#89DDFF;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic}html pre.shiki code .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":36,"searchDepth":51,"depth":51,"links":244},[245,246,247,248],{"id":13,"depth":51,"text":14},{"id":21,"depth":51,"text":22},{"id":28,"depth":51,"text":29},{"id":234,"depth":51,"text":235},"general","Null means 'intentionally nothing' — a programmer chose to say 'there is no value here'. It is a deliberate absence.","beginner","md","n",{},"\u002Fterms\u002Fn\u002Fnull",[257,258,259,260,261],"Undefined","NaN","Type","Runtime Error","Optional Chaining",{"title":5,"description":250},{"changefreq":264,"priority":265},"weekly",0.7,"terms\u002Fn\u002Fnull","Xs6hvlo2S6bGQ_fs-J-KSWuiLqE_CdhKPcUdZwWNNQQ",[269,273,276,279],{"title":258,"path":270,"acronym":271,"category":249,"difficulty":251,"description":272},"\u002Fterms\u002Fn\u002Fnan","Not a Number","NaN means 'Not a Number' — it is what JavaScript gives you when math goes wrong in a weird way. Try to parse a word as a number and you get NaN.",{"title":260,"path":274,"acronym":6,"category":249,"difficulty":251,"description":275},"\u002Fterms\u002Fr\u002Fruntime-error","A runtime error is one that only shows up when your program is actually running, not before.",{"title":259,"path":277,"acronym":6,"category":249,"difficulty":251,"description":278},"\u002Fterms\u002Ft\u002Ftype","A type tells the computer what kind of thing a value is — is it a number, text, true\u002Ffalse, or a list?",{"title":257,"path":280,"acronym":6,"category":249,"difficulty":251,"description":281},"\u002Fterms\u002Fu\u002Fundefined","Undefined in JavaScript means a variable exists but has never been given a value.",1776518298036]