====== Javascript ====== ===== Template literals ===== Template literals are syntaxed ''${...}'' In JavaScript, strings can be written in three ways: 'string' // single quotes "string" // double quotes `string` // backticks → template literal Only template literals (backticks) support interpolation using: ''${expression}'' Inside ''${...}'', you can put any valid JavaScript expression: * variables * function calls * arithmetic * ternaries * property access === Examples === const name = 'Alex'; `Hello ${name}!`; This produces: Hello Alex! Template literals can be very useful to replace long lists of 'string' + var + 'string' + var ... 'Tag: ' + tag_autospawn + ' - Spawned car ' + suffix This works, but: * It’s visually noisy * Easy to miss a space * Harder to refactor * Encourages line-breaking when long The template literal equivalent is: `Tag: ${tag_autospawn} - Spawned car ${suffix}` Same result, much clearer structure. A template literal is: * One string * With embedded expressions * Much easier to keep visually compact So this: '''foo ' + a + ' bar ' + b + ' baz ' + c'' Becomes: ''`foo ${a} bar ${b} baz ${c}`'' ==== Not limited to variables ==== Inside ''${}'', you can do more: `UV: ${car_uv.toFixed(2)}` `State: ${isActive ? 'ON' : 'OFF'}` `Next index: ${pointer + 1}` This is real code, not just substitution. ==== Runtime behavior (important) ==== Template literals: * Are evaluated at runtime * Produce a normal string * Have no performance penalty compared to concatenation in modern JS engines * Are fully supported in ES6+ (basically everything now) So: '''Hello ' + name'' and: ''`Hello ${name}`'' Compile down to equivalent bytecode in modern engines. ==== Multiline strings (bonus) ==== Template literals also preserve newlines exactly as written: `Line 1 Line 2 Line 3` This is extremely useful for logs, SQL, shaders, etc. ==== Common pitfalls to be aware of ==== Template literals use **backticks**, not **quotes** ''${}'' is not jQuery or shell syntax — it’s JS-only Don’t confuse ''${}'' with ''$(...)'' (shell / jQuery) ==== TL;DR ==== * ''${...}'' is **expression interpolation inside template literals** * It replaces string concatenation cleanly * It improves readability and formatter behavior * It’s safe, modern, and efficient * It’s the idiomatic way to build strings in modern JS