[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"academy-blogs-en-1-1-all-js2go-ep24-string-text-processing-all--*":3,"academy-blog-translations-9ay1rklqdug3odd":84},{"data":4,"page":83,"perPage":83,"totalItems":83,"totalPages":83},[5],{"alt":6,"collectionId":7,"collectionName":8,"content":9,"cover_image":10,"cover_image_path":11,"created":12,"created_by":13,"expand":14,"id":77,"keywords":78,"locale":54,"published_at":79,"scheduled_at":13,"school_blog":75,"short_description":80,"slug":81,"status":73,"title":6,"updated":82,"updated_by":13,"views":76},"JS2GO EP.24 String and Text Processing in JavaScript and Go","sclblg987654321","school_blog_translations","\u003Cp>String manipulation is a fundamental concept in every programming language. Whether it's displaying data, searching, formatting text, or processing text files, understanding how to handle strings and text processing in JavaScript and Go will help you write efficient and correct programs. In this article, we will compare how to create, modify, and process strings in both languages, with clear code examples and best practices.\u003C\u002Fp>\u003Cp>&nbsp;\u003C\u002Fp>\u003Ch2>Creating Strings\u003C\u002Fh2>\u003Cp>&nbsp;\u003C\u002Fp>\u003Cp>JavaScript\u003C\u002Fp>\u003Cpre>\u003Ccode class=\"language-javascript\">const greeting = \"Hello, World!\";\nconst name = 'Boom';\nconst multiLine = `Hello\nMy name is ${name}`;\n\u003C\u002Fcode>\u003C\u002Fpre>\u003Cp>&nbsp;\u003C\u002Fp>\u003Cp>Go\u003C\u002Fp>\u003Cpre>\u003Ccode class=\"language-plaintext language-go\">package main\n\nimport \"fmt\"\n\nfunc main() {\n    greeting := \"Hello, World!\"\n    name := \"Boom\"\n    multiLine := `Hello\nMy name is ` + name\n    fmt.Println(greeting)\n    fmt.Println(multiLine)\n}\n\u003C\u002Fcode>\u003C\u002Fpre>\u003Cp>&nbsp;\u003C\u002Fp>\u003Cp>Observations:\u003C\u002Fp>\u003Cul>\u003Cli>JavaScript supports template literals (``) for multi-line strings and interpolation.\u003C\u002Fli>\u003Cli>Go uses backticks (\u003Ccode inline=\"\">) for raw multi-line strings and \u003C\u002Fcode>+` for concatenation.\u003C\u002Fli>\u003C\u002Ful>\u003Cp>&nbsp;\u003C\u002Fp>\u003Ch2>Accessing and Modifying Strings\u003C\u002Fh2>\u003Cp>&nbsp;\u003C\u002Fp>\u003Cp>JavaScript\u003C\u002Fp>\u003Cpre>\u003Ccode class=\"language-javascript\">const text = \"JavaScript\";\nconsole.log(text[0]); \u002F\u002F J\nconsole.log(text.length); \u002F\u002F 10\n\nconst upper = text.toUpperCase();\nconsole.log(upper); \u002F\u002F JAVASCRIPT\n\u003C\u002Fcode>\u003C\u002Fpre>\u003Cp>&nbsp;\u003C\u002Fp>\u003Cp>Go\u003C\u002Fp>\u003Cpre>\u003Ccode class=\"language-plaintext language-go\">package main\n\nimport (\n    \"fmt\"\n    \"strings\"\n)\n\nfunc main() {\n    text := \"GoLang\"\n    fmt.Println(string(text[0]))     \u002F\u002F G\n    fmt.Println(len(text))           \u002F\u002F 6\n    fmt.Println(strings.ToUpper(text)) \u002F\u002F GOLANG\n}\n\u003C\u002Fcode>\u003C\u002Fpre>\u003Cp>&nbsp;\u003C\u002Fp>\u003Cp>Observations:\u003C\u002Fp>\u003Cul>\u003Cli>In JavaScript, strings can be accessed like an array of characters.\u003C\u002Fli>\u003Cli>Go strings are immutable byte slices, so you need to convert a single byte to a string when displaying individual characters (e.g., \u003Ccode inline=\"\">string(text[0])\u003C\u002Fcode>).\u003C\u002Fli>\u003C\u002Ful>\u003Cp>&nbsp;\u003C\u002Fp>\u003Ch2>Concatenation\u003C\u002Fh2>\u003Cp>&nbsp;\u003C\u002Fp>\u003Cp>JavaScript\u003C\u002Fp>\u003Cpre>\u003Ccode class=\"language-javascript\">const firstName = \"Boom\";\nconst lastName = \"Supanut\";\nconst fullName = firstName + \" \" + lastName;\nconsole.log(fullName); \u002F\u002F Boom Supanut\n\u003C\u002Fcode>\u003C\u002Fpre>\u003Cp>&nbsp;\u003C\u002Fp>\u003Cp>Go\u003C\u002Fp>\u003Cpre>\u003Ccode class=\"language-plaintext language-go\">fullName := firstName + \" \" + lastName\nfmt.Println(fullName) \u002F\u002F Boom Supanut\n\u003C\u002Fcode>\u003C\u002Fpre>\u003Cp>&nbsp;\u003C\u002Fp>\u003Cp>Observations:\u003C\u002Fp>\u003Cul>\u003Cli>Both languages can use \u003Ccode inline=\"\">+\u003C\u002Fcode> for string concatenation.\u003C\u002Fli>\u003Cli>JavaScript also allows template literals for readability and cleaner code.\u003C\u002Fli>\u003C\u002Ful>\u003Cp>&nbsp;\u003C\u002Fp>\u003Ch2>Splitting and Substring\u003C\u002Fh2>\u003Cp>&nbsp;\u003C\u002Fp>\u003Cp>JavaScript\u003C\u002Fp>\u003Cpre>\u003Ccode class=\"language-javascript\">const sentence = \"I love Go and JavaScript\";\nconst words = sentence.split(\" \");\nconsole.log(words); \u002F\u002F [\"I\", \"love\", \"Go\", \"and\", \"JavaScript\"]\n\nconst sub = sentence.substring(7, 9);\nconsole.log(sub); \u002F\u002F Go\n\u003C\u002Fcode>\u003C\u002Fpre>\u003Cp>&nbsp;\u003C\u002Fp>\u003Cp>Go\u003C\u002Fp>\u003Cpre>\u003Ccode class=\"language-plaintext language-go\">import \"strings\"\n\nsentence := \"I love Go and JavaScript\"\nwords := strings.Split(sentence, \" \")\nfmt.Println(words) \u002F\u002F [I love Go and JavaScript]\n\nsub := sentence[7:9]\nfmt.Println(sub) \u002F\u002F Go\n\u003C\u002Fcode>\u003C\u002Fpre>\u003Cp>&nbsp;\u003C\u002Fp>\u003Cp>Observations:\u003C\u002Fp>\u003Cul>\u003Cli>JavaScript uses \u003Ccode inline=\"\">split()\u003C\u002Fcode>, \u003Ccode inline=\"\">substring()\u003C\u002Fcode>, or \u003Ccode inline=\"\">slice()\u003C\u002Fcode>.\u003C\u002Fli>\u003Cli>Go uses \u003Ccode inline=\"\">strings.Split()\u003C\u002Fcode> and string slicing \u003Ccode inline=\"\">[start:end]\u003C\u002Fcode>.\u003C\u002Fli>\u003C\u002Ful>\u003Cp>&nbsp;\u003C\u002Fp>\u003Ch2>Searching and Checking Text\u003C\u002Fh2>\u003Cp>&nbsp;\u003C\u002Fp>\u003Cp>JavaScript\u003C\u002Fp>\u003Cpre>\u003Ccode class=\"language-javascript\">const phrase = \"Learning JavaScript with Go\";\nconsole.log(phrase.includes(\"Go\")); \u002F\u002F true\nconsole.log(phrase.indexOf(\"JavaScript\")); \u002F\u002F 9\n\u003C\u002Fcode>\u003C\u002Fpre>\u003Cp>&nbsp;\u003C\u002Fp>\u003Cp>Go\u003C\u002Fp>\u003Cpre>\u003Ccode class=\"language-plaintext language-go\">import \"strings\"\n\nphrase := \"Learning GoLang and JavaScript\"\nfmt.Println(strings.Contains(phrase, \"Go\"))       \u002F\u002F true\nfmt.Println(strings.Index(phrase, \"JavaScript\")) \u002F\u002F 16\n\u003C\u002Fcode>\u003C\u002Fpre>\u003Cp>&nbsp;\u003C\u002Fp>\u003Cp>Observations:\u003C\u002Fp>\u003Cul>\u003Cli>JavaScript uses \u003Ccode inline=\"\">includes()\u003C\u002Fcode> and \u003Ccode inline=\"\">indexOf()\u003C\u002Fcode>.\u003C\u002Fli>\u003Cli>Go uses \u003Ccode inline=\"\">strings.Contains()\u003C\u002Fcode> and \u003Ccode inline=\"\">strings.Index()\u003C\u002Fcode>.\u003C\u002Fli>\u003C\u002Ful>\u003Cp>&nbsp;\u003C\u002Fp>\u003Ch2>Replacing Text\u003C\u002Fh2>\u003Cp>&nbsp;\u003C\u002Fp>\u003Cp>JavaScript\u003C\u002Fp>\u003Cpre>\u003Ccode class=\"language-javascript\">const text = \"I like JavaScript\";\nconst newText = text.replace(\"JavaScript\", \"Go\");\nconsole.log(newText); \u002F\u002F I like Go\n\u003C\u002Fcode>\u003C\u002Fpre>\u003Cp>&nbsp;\u003C\u002Fp>\u003Cp>Go\u003C\u002Fp>\u003Cpre>\u003Ccode class=\"language-plaintext language-go\">newText := strings.Replace(text, \"JavaScript\", \"Go\", 1)\nfmt.Println(newText) \u002F\u002F I like Go\n\u003C\u002Fcode>\u003C\u002Fpre>\u003Cp>&nbsp;\u003C\u002Fp>\u003Cp>Observations:\u003C\u002Fp>\u003Cul>\u003Cli>JavaScript uses \u003Ccode inline=\"\">replace()\u003C\u002Fcode>.\u003C\u002Fli>\u003Cli>Go uses \u003Ccode inline=\"\">strings.Replace()\u003C\u002Fcode> with a count parameter to specify how many replacements to perform.\u003C\u002Fli>\u003C\u002Ful>\u003Cp>&nbsp;\u003C\u002Fp>\u003Ch2>Changing Case\u003C\u002Fh2>\u003Cp>&nbsp;\u003C\u002Fp>\u003Cp>JavaScript\u003C\u002Fp>\u003Cpre>\u003Ccode class=\"language-javascript\">const text = \"hello world\";\nconsole.log(text.toUpperCase()); \u002F\u002F HELLO WORLD\nconsole.log(text.toLowerCase()); \u002F\u002F hello world\n\u003C\u002Fcode>\u003C\u002Fpre>\u003Cp>&nbsp;\u003C\u002Fp>\u003Cp>Go\u003C\u002Fp>\u003Cpre>\u003Ccode class=\"language-plaintext language-go\">fmt.Println(strings.ToUpper(text)) \u002F\u002F HELLO WORLD\nfmt.Println(strings.ToLower(text)) \u002F\u002F hello world\n\u003C\u002Fcode>\u003C\u002Fpre>\u003Cp>&nbsp;\u003C\u002Fp>\u003Ch2>Best Practices\u003C\u002Fh2>\u003Cp>&nbsp;\u003C\u002Fp>\u003Cp>✔️ Use built-in string functions as much as possible.\u003Cbr>✔️ Use template literals (JS) or raw strings (Go) for better readability.\u003Cbr>✔️ For large text processing or frequent modifications, consider StringBuilder in Go (\u003Ccode inline=\"\">strings.Builder\u003C\u002Fcode>).\u003Cbr>✔️ Check encoding when handling Unicode or multi-byte characters.\u003Cbr>✔️ Use unit tests to verify text processing results.\u003C\u002Fp>\u003Cp>&nbsp;\u003C\u002Fp>\u003Chr>\u003Cp>&nbsp;\u003C\u002Fp>\u003Ch2>String &amp; Text Processing Comparison\u003C\u002Fh2>\u003Cp>&nbsp;\u003C\u002Fp>\u003Cfigure class=\"table\">\u003Ctable>\u003Cthead>\u003Ctr>\u003Cth>Feature\u003C\u002Fth>\u003Cth>JavaScript\u003C\u002Fth>\u003Cth>Go\u003C\u002Fth>\u003C\u002Ftr>\u003C\u002Fthead>\u003Ctbody>\u003Ctr>\u003Ctd>Object\u003C\u002Ftd>\u003Ctd>String\u003C\u002Ftd>\u003Ctd>string (immutable)\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd>Multi-line\u003C\u002Ftd>\u003Ctd>Template literal ``\u003C\u002Ftd>\u003Ctd>Raw string ``\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd>Concatenate\u003C\u002Ftd>\u003Ctd>+ or template literal\u003C\u002Ftd>\u003Ctd>+ or strings.Builder\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd>Split\u003C\u002Ftd>\u003Ctd>split()\u003C\u002Ftd>\u003Ctd>strings.Split()\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd>Substring\u003C\u002Ftd>\u003Ctd>substring() \u002F slice()\u003C\u002Ftd>\u003Ctd>slice \u003Ccode inline=\"\">[start:end]\u003C\u002Fcode>\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd>Search\u003C\u002Ftd>\u003Ctd>includes(), indexOf()\u003C\u002Ftd>\u003Ctd>strings.Contains(), strings.Index()\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd>Replace\u003C\u002Ftd>\u003Ctd>replace()\u003C\u002Ftd>\u003Ctd>strings.Replace()\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd>Upper\u002FLower\u003C\u002Ftd>\u003Ctd>toUpperCase(), toLowerCase()\u003C\u002Ftd>\u003Ctd>strings.ToUpper(), strings.ToLower()\u003C\u002Ftd>\u003C\u002Ftr>\u003C\u002Ftbody>\u003C\u002Ftable>\u003C\u002Ffigure>\u003Cp>&nbsp;\u003C\u002Fp>\u003Cp>Recommendation:\u003C\u002Fp>\u003Cul>\u003Cli>Frontend \u002F Web App → JavaScript strings + template literals\u003C\u002Fli>\u003Cli>Backend \u002F CLI \u002F Server → Go strings + strings package for performance and type safety\u003C\u002Fli>\u003C\u002Ful>\u003Cp>&nbsp;\u003C\u002Fp>\u003Ch2>Next Episode\u003C\u002Fh2>\u003Cp>&nbsp;\u003C\u002Fp>\u003Cp>In JS2GO EP.25, we will explore Regular Expressions in JavaScript and Go to handle text patterns and advanced text processing like a pro.\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.academy.th\">\u003Cstrong>Superdev Academy\u003C\u002Fstrong>\u003C\u002Fa>\u003C\u002Fp>\u003Cp>\u003Cstrong>🔴 YouTube: \u003C\u002Fstrong>\u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fwww.youtube.com\u002Fchannel\u002FUC2eI2RxcA2zbTqZyHyWIfRg\">\u003Cstrong>Superdev Academy\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>Superdev Academy\u003C\u002Fstrong>\u003C\u002Fa>\u003C\u002Fp>\u003Cp>\u003Cstrong>🎬 TikTok: \u003C\u002Fstrong>\u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fwww.tiktok.com\u002F@superdevacademy?lang=th-TH\">\u003Cstrong>https:\u002F\u002Fwww.tiktok.com\u002F@superdevacademy?lang=th-TH\u003C\u002Fstrong>\u003C\u002Fa>\u003C\u002Fp>\u003Cp>\u003Cstrong>🌐 Website: \u003C\u002Fstrong>\u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fwww.superdevacademy.com\u002Fen\">\u003Cstrong>https:\u002F\u002Fwww.superdevacademy.com\u002Fen\u003C\u002Fstrong>\u003C\u002Fa>\u003Cstrong>&nbsp;\u003C\u002Fstrong>\u003C\u002Fp>","48_11zon_wtn90xsnic.webp","https:\u002F\u002Ftwsme-r2.tumwebsme.com\u002Fsclblg987654321\u002F3okfoxidq02g6xa\u002F48_11zon_wtn90xsnic.webp","2026-03-04 08:46:23.180Z","",{"keywords":15,"locale":48,"school_blog":58},[16,23,28,33,38,43],{"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:46:21.507Z","mqno8sfs0peyg3p","Go String","2026-04-10 16:13:13.064Z",{"collectionId":17,"collectionName":18,"created":24,"created_by":13,"id":25,"name":26,"updated":27,"updated_by":13},"2026-03-04 08:46:21.813Z","9qr9wpmropa1u8j","JavaScript String","2026-04-10 16:13:13.156Z",{"collectionId":17,"collectionName":18,"created":29,"created_by":13,"id":30,"name":31,"updated":32,"updated_by":13},"2026-03-04 08:20:11.547Z","ey3puyme01a9bsw","Go","2026-04-10 16:07:25.893Z",{"collectionId":17,"collectionName":18,"created":34,"created_by":13,"id":35,"name":36,"updated":37,"updated_by":13},"2026-03-04 08:20:42.484Z","vslzz9nvv6n77cx","JavaScript","2026-04-10 16:07:28.339Z",{"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",{"collectionId":17,"collectionName":18,"created":44,"created_by":13,"id":45,"name":46,"updated":47,"updated_by":13},"2026-03-04 08:45:30.765Z","nayuhpre9emd5xw","JS2GO","2026-04-10 16:12:59.160Z",{"code":49,"collectionId":50,"collectionName":51,"created":52,"flag":53,"id":54,"is_default":55,"label":56,"updated":57},"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":59,"collectionId":60,"collectionName":61,"expand":62,"id":75,"views":76},"hsa1afr8fcnd6qb","pbc_2105096300","school_blogs",{"category":63},{"blogIds":64,"collectionId":65,"collectionName":66,"created":67,"created_by":13,"id":59,"image":68,"image_alt":13,"image_path":69,"label":70,"name":46,"priority":71,"publish_at":72,"scheduled_at":13,"status":73,"updated":74,"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":46,"th":46},10,"2025-08-11 03:41:08.820Z","published","2026-04-25 02:32:14.339Z","9ay1rklqdug3odd",205,"3okfoxidq02g6xa",[20,25,30,35,40,45],"2025-09-25 02:18:44.373Z","Learn how to handle strings in JavaScript and Go, including creating, editing, concatenating, searching, and replacing text, with clear code examples and best practices.","js2go-ep24-string-text-processing","2026-04-25 02:48:03.090Z",1,{"en":81}]