====== 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