Capítulo 839 de 859
The manual assumes solid working knowledge of modern JavaScript/DOM/ES6+ (modules, closures, this, destructuring, classes, promises/async-await, template literals) — this lesson is a quick refresher list of that expected background, not a JS tutorial itself.
import inside <script type="module"> and import maps, rather than global <script> tags.this binding: not magic — it's effectively an implicit argument; calling a function via the dot operator (obj.fn()) sets this to obj, while passing a bare function reference as a callback (e.g. to a loader) loses that binding unless explicitly bound or wrapped in an arrow function.const/let instead of var, for...of instead of for...in, array forEach/map/filter, object/array destructuring, the rest/spread operators, class syntax with getters/setters, arrow functions (which bind this lexically), promises and async/await, and template literals.no-undef) catches undefined-variable typos early; when using global <script> tags instead of modules, add /* global THREE */ so the linter doesn't flag the global.this is no longer bound — use an arrow function or explicit .bind() when that matters.const/let over var, and for...of over for...in, matching the conventions used throughout the manual's own code samples.no-undef rule in particular) catches a lot of the typo-class bugs beginners hit early in a three.js project.