[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"academy-blogs-en-1-1-all-zero-values-go-vs-default-values-javascript-all--*":3,"academy-blog-translations-idvl93yuf4vb1nm":81},{"data":4,"page":80,"perPage":80,"totalItems":80,"totalPages":80},[5],{"alt":6,"collectionId":7,"collectionName":8,"content":9,"cover_image":10,"cover_image_path":11,"created":12,"created_by":13,"expand":14,"id":75,"keywords":76,"locale":49,"published_at":77,"scheduled_at":13,"school_blog":71,"short_description":78,"status":69,"title":6,"updated":79,"updated_by":13,"slug":72,"views":74},"JS2GO EP.14 Zero Values in Go and Default Values in JavaScript","sclblg987654321","school_blog_translations","\u003Cp>Understanding default values of variables is essential to prevent errors caused by uninitialized variables. Go and JavaScript handle default values differently. This article explains Zero Values in Go and Default Values in JavaScript, with examples, advantages, and considerations for each language.\u003C\u002Fp>\u003Cp>&nbsp;\u003C\u002Fp>\u003Ch2>Zero Values in Go\u003C\u002Fh2>\u003Cp>&nbsp;\u003C\u002Fp>\u003Cp>Go is a statically typed language, which means every variable must have a defined type. If you don’t explicitly assign a value, Go automatically assigns a Zero Value based on the variable’s type.\u003C\u002Fp>\u003Cp>&nbsp;\u003C\u002Fp>\u003Cp>Zero Values by Type\u003C\u002Fp>\u003Cfigure class=\"table\">\u003Ctable>\u003Cthead>\u003Ctr>\u003Cth>Type\u003C\u002Fth>\u003Cth>Zero Value\u003C\u002Fth>\u003C\u002Ftr>\u003C\u002Fthead>\u003Ctbody>\u003Ctr>\u003Ctd>\u003Ccode inline=\"\">int\u003C\u002Fcode>\u003C\u002Ftd>\u003Ctd>\u003Ccode inline=\"\">0\u003C\u002Fcode>\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd>\u003Ccode inline=\"\">float64\u003C\u002Fcode>\u003C\u002Ftd>\u003Ctd>\u003Ccode inline=\"\">0.0\u003C\u002Fcode>\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd>\u003Ccode inline=\"\">string\u003C\u002Fcode>\u003C\u002Ftd>\u003Ctd>\u003Ccode inline=\"\">\"\"\u003C\u002Fcode> (empty string)\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd>\u003Ccode inline=\"\">bool\u003C\u002Fcode>\u003C\u002Ftd>\u003Ctd>\u003Ccode inline=\"\">false\u003C\u002Fcode>\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd>pointer\u003C\u002Ftd>\u003Ctd>\u003Ccode inline=\"\">nil\u003C\u002Fcode>\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd>slice\u002Fmap\u003C\u002Ftd>\u003Ctd>\u003Ccode inline=\"\">nil\u003C\u002Fcode>\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd>struct\u003C\u002Ftd>\u003Ctd>struct with all fields set to zero value\u003C\u002Ftd>\u003C\u002Ftr>\u003C\u002Ftbody>\u003C\u002Ftable>\u003C\u002Ffigure>\u003Cp>&nbsp;\u003C\u002Fp>\u003Cp>Example in Go\u003C\u002Fp>\u003Cpre>\u003Ccode class=\"language-plaintext language-go\">package main\n\nimport \"fmt\"\n\nfunc main() {\n    var a int\n    var b string\n    var c bool\n    var d []int\n    var e *int\n\n    fmt.Println(a) \u002F\u002F 0\n    fmt.Println(b) \u002F\u002F \"\"\n    fmt.Println(c) \u002F\u002F false\n    fmt.Println(d) \u002F\u002F []\n    fmt.Println(e) \u002F\u002F &lt;nil&gt;\n}\n\u003C\u002Fcode>\u003C\u002Fpre>\u003Cp>&nbsp;\u003C\u002Fp>\u003Cp>Advantages of Zero Values in Go\u003C\u002Fp>\u003Cul>\u003Cli>Prevents errors from using uninitialized variables.\u003C\u002Fli>\u003Cli>Provides predictable and safe default behavior.\u003C\u002Fli>\u003Cli>Allows code to be checked for correctness at compile time.\u003C\u002Fli>\u003C\u002Ful>\u003Cp>&nbsp;\u003C\u002Fp>\u003Cp>Considerations\u003C\u002Fp>\u003Cul>\u003Cli>Beginners may be confused if they don’t understand the default values for each type.\u003C\u002Fli>\u003C\u002Ful>\u003Cp>&nbsp;\u003C\u002Fp>\u003Ch2>Default Values in JavaScript\u003C\u002Fh2>\u003Cp>&nbsp;\u003C\u002Fp>\u003Cp>In JavaScript, variables that are declared but not initialized have the value \u003Ccode inline=\"\">undefined\u003C\u002Fcode>. You can override these defaults by assigning values manually or using default parameters in functions.\u003C\u002Fp>\u003Cp>&nbsp;\u003C\u002Fp>\u003Cp>Example of Default Values in JavaScript\u003C\u002Fp>\u003Cpre>\u003Ccode class=\"language-javascript\">let a;\nlet b = \"\";\nlet c = false;\nlet d = null;\n\nconsole.log(a); \u002F\u002F undefined\nconsole.log(b); \u002F\u002F \"\"\nconsole.log(c); \u002F\u002F false\nconsole.log(d); \u002F\u002F null\n\u003C\u002Fcode>\u003C\u002Fpre>\u003Cp>&nbsp;\u003C\u002Fp>\u003Cp>Default Parameters in Functions\u003C\u002Fp>\u003Cpre>\u003Ccode class=\"language-javascript\">function greet(name = \"Guest\") {\n    console.log(`Hello, ${name}!`);\n}\n\ngreet();        \u002F\u002F Hello, Guest!\ngreet(\"John\");  \u002F\u002F Hello, John!\n\u003C\u002Fcode>\u003C\u002Fpre>\u003Cp>&nbsp;\u003C\u002Fp>\u003Cp>Advantages of Default Values in JavaScript\u003C\u002Fp>\u003Cul>\u003Cli>Flexible: you can change the default values as needed.\u003C\u002Fli>\u003Cli>Functions can easily define default parameters.\u003C\u002Fli>\u003C\u002Ful>\u003Cp>&nbsp;\u003C\u002Fp>\u003Cp>Considerations\u003C\u002Fp>\u003Cul>\u003Cli>\u003Ccode inline=\"\">undefined\u003C\u002Fcode> may cause bugs if not checked before use.\u003C\u002Fli>\u003Cli>Using dynamic defaults requires caution with type coercion.\u003C\u002Fli>\u003C\u002Ful>\u003Cp>&nbsp;\u003C\u002Fp>\u003Ch2>Comparison: Go Zero Values vs JavaScript Default Values\u003C\u002Fh2>\u003Cp>&nbsp;\u003C\u002Fp>\u003Cfigure class=\"table\">\u003Ctable>\u003Cthead>\u003Ctr>\u003Cth>Feature\u003C\u002Fth>\u003Cth>Go\u003C\u002Fth>\u003Cth>JavaScript\u003C\u002Fth>\u003C\u002Ftr>\u003C\u002Fthead>\u003Ctbody>\u003Ctr>\u003Ctd>Type System\u003C\u002Ftd>\u003Ctd>Statically typed\u003C\u002Ftd>\u003Ctd>Dynamically typed\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd>Default \u002F Zero Value\u003C\u002Ftd>\u003Ctd>Zero Value per type\u003C\u002Ftd>\u003Ctd>\u003Ccode inline=\"\">undefined\u003C\u002Fcode> if not assigned\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd>Predictability\u003C\u002Ftd>\u003Ctd>High (clear per type)\u003C\u002Ftd>\u003Ctd>Low (depends on assignment)\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd>Safety\u003C\u002Ftd>\u003Ctd>Very safe\u003C\u002Ftd>\u003Ctd>Need caution with \u003Ccode inline=\"\">undefined\u003C\u002Fcode>\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd>Flexibility\u003C\u002Ftd>\u003Ctd>Low (cannot override Zero Value)\u003C\u002Ftd>\u003Ctd>High (can assign any default)\u003C\u002Ftd>\u003C\u002Ftr>\u003C\u002Ftbody>\u003C\u002Ftable>\u003C\u002Ffigure>\u003Cp>&nbsp;\u003C\u002Fp>\u003Chr>\u003Cp>&nbsp;\u003C\u002Fp>\u003Ch2>Summary and Recommendations\u003C\u002Fh2>\u003Cp>&nbsp;\u003C\u002Fp>\u003Cul>\u003Cli>Go: Zero Values ensure every variable has a clear initial value, reducing errors and increasing code safety. Choose Go if you want predictable and safe variable handling.\u003C\u002Fli>\u003Cli>JavaScript: Default Values are highly flexible but require careful handling of \u003Ccode inline=\"\">undefined\u003C\u002Fcode> and type coercion. Choose JavaScript if you want quick development and flexibility.\u003C\u002Fli>\u003C\u002Ful>\u003Cp>&nbsp;\u003C\u002Fp>\u003Ch2>Next Episode\u003C\u002Fh2>\u003Cp>&nbsp;\u003C\u002Fp>\u003Cp>In EP.15 of the JS2GO series, we will explore Maps in Go and JavaScript for managing key-value pairs efficiently and appropriately for different projects.\u003C\u002Fp>\u003Cp>&nbsp;\u003C\u002Fp>\u003Cp data-start=\"498\" data-end=\"834\">\u003Cstrong>Read more\u003C\u002Fstrong>\u003C\u002Fp>\u003Cul>\u003Cli>\u003Cp data-start=\"498\" data-end=\"834\">\u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fwww.superdev.school\u002Fblogs\u002Fcategories\u002FGolang\">\u003Cstrong>Golang The Series\u003C\u002Fstrong>\u003C\u002Fa>\u003C\u002Fp>\u003C\u002Fli>\u003Cli>\u003Cp data-start=\"498\" data-end=\"834\">\u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fwww.superdev.school\u002Fblogs\u002Fcategories\u002FJS2GO\">\u003Cstrong>JS2GO\u003C\u002Fstrong>\u003C\u002Fa>\u003C\u002Fp>\u003C\u002Fli>\u003Cli>\u003Cp data-start=\"498\" data-end=\"834\">\u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fwww.superdev.school\u002Fen\u002Fblogs\u002Fcategories\u002FTailwind%20CSS\">\u003Cstrong>10 Eps That Will Make You a Pro Tailwind CSS Overnight\u003C\u002Fstrong>\u003C\u002Fa>\u003C\u002Fp>\u003C\u002Fli>\u003C\u002Ful>\u003Cp>\u003Cstrong>🔵 Facebook: \u003C\u002Fstrong>\u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fwww.facebook.com\u002Fsuperdev.school.th\">\u003Cstrong>Superdev School &nbsp;(Superdev)\u003C\u002Fstrong>\u003C\u002Fa>\u003C\u002Fp>\u003Cp>\u003Cstrong>📸 Instagram: \u003C\u002Fstrong>\u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fwww.instagram.com\u002Fsuperdevschool\u002F\">\u003Cstrong>superdevschool\u003C\u002Fstrong>\u003C\u002Fa>\u003C\u002Fp>\u003Cp>\u003Cstrong>🎬 TikTok: \u003C\u002Fstrong>\u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fwww.tiktok.com\u002F@superdevschool\">\u003Cstrong>superdevschool\u003C\u002Fstrong>\u003C\u002Fa>\u003C\u002Fp>\u003Cp class=\"\" data-start=\"5978\" data-end=\"6095\">\u003Cstrong>🌐 Website: \u003C\u002Fstrong>\u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fwww.superdev.school\u002F\">\u003Cstrong>www.superdev.school\u003C\u002Fstrong>\u003C\u002Fa>\u003C\u002Fp>","28_11zon_xgizkmh09f.webp","https:\u002F\u002Ftwsme-r2.tumwebsme.com\u002Fsclblg987654321\u002F8i0d5dnz2hdtk9t\u002F28_11zon_xgizkmh09f.webp","2026-03-04 08:46:48.464Z","",{"keywords":15,"locale":43,"school_blog":53},[16,23,28,33,38],{"collectionId":17,"collectionName":18,"created":19,"created_by":13,"id":20,"name":21,"updated":22,"updated_by":13},"sclkey987654321","school_keywords","2026-03-04 08:20:11.547Z","ey3puyme01a9bsw","Go","2026-04-10 16:07:25.893Z",{"collectionId":17,"collectionName":18,"created":24,"created_by":13,"id":25,"name":26,"updated":27,"updated_by":13},"2026-03-04 08:20:42.484Z","vslzz9nvv6n77cx","JavaScript","2026-04-10 16:07:28.339Z",{"collectionId":17,"collectionName":18,"created":29,"created_by":13,"id":30,"name":31,"updated":32,"updated_by":13},"2026-03-04 08:46:47.829Z","reyra7i6583nwtn","Zero Values","2026-04-10 16:13:19.247Z",{"collectionId":17,"collectionName":18,"created":34,"created_by":13,"id":35,"name":36,"updated":37,"updated_by":13},"2026-03-04 08:46:48.129Z","z2c820dceqy45bi","Default Values","2026-04-10 16:13:19.433Z",{"collectionId":17,"collectionName":18,"created":39,"created_by":13,"id":40,"name":41,"updated":42,"updated_by":13},"2026-03-04 08:24:38.707Z","v8n5s20nj500amh","JavaScript vs Go","2026-04-10 16:07:29.238Z",{"code":44,"collectionId":45,"collectionName":46,"created":47,"flag":48,"id":49,"is_default":50,"label":51,"updated":52},"en","pbc_1989393366","locales","2026-01-22 11:00:02.726Z","twemoji:flag-united-states","qv9c1llfov2d88z",false,"English","2026-04-10 15:42:46.825Z",{"category":54,"collectionId":55,"collectionName":56,"created":13,"expand":57,"id":71,"slug":72,"updated":73,"views":74},"hsa1afr8fcnd6qb","pbc_2105096300","school_blogs",{"category":58},{"blogIds":59,"collectionId":60,"collectionName":61,"created":62,"created_by":13,"id":54,"image":63,"image_alt":13,"image_path":64,"label":65,"name":66,"priority":67,"publish_at":68,"scheduled_at":13,"status":69,"updated":70,"updated_by":13},[],"sclcatblg987654321","school_category_blogs","2026-03-04 08:24:37.986Z","js2_go_2_11zon_y6paxmuz32.webp","https:\u002F\u002Ftwsme-r2.tumwebsme.com\u002Fsclcatblg987654321\u002Fhsa1afr8fcnd6qb\u002Fjs2_go_2_11zon_y6paxmuz32.webp",{"en":66,"th":66},"JS2GO",10,"2025-08-11 03:41:08.820Z","published","2026-04-25 02:32:14.339Z","idvl93yuf4vb1nm","zero-values-go-vs-default-values-javascript","2026-05-11 11:47:24.854Z",226,"8i0d5dnz2hdtk9t",[20,25,30,35,40],"2025-08-26 02:34:03.735Z","Learn how to use Zero Values in Go and Default Values in JavaScript to understand variable defaults, compare advantages and disadvantages, and choose the right language for your projects","2026-04-25 02:48:08.241Z",1,{"th":72,"en":72}]