Cover of You Don't Know JS: Types & Grammar by Kyle Simpson - Business and Economics Book

From "You Don't Know JS: Types & Grammar"

Author: Kyle Simpson
Publisher: "O'Reilly Media, Inc."
Year: 2015
Category: Computers

🎧 Free Preview Complete

You've listened to your free 10-minute preview.
Sign up free to continue listening to the full summary.

🎧 Listen to Summary

Free 10-min Preview
0:00
Speed:
10:00 free remaining
Chapter 1: What Is JavaScript?
Key Insight 2 from this chapter

JavaScript's Foundational Principles and Ecosystem Management

Key Insight

JavaScript's specification is managed by TC39, a technical steering committee composed of 50 to 100 volunteers from major web-invested companies, including browser makers like Mozilla, Google, and Apple, and device makers such as Samsung. TC39 oversees the language's official specification, which defines its syntax and behavior and is formalized by ECMA, the standards organization. Proposals for language enhancements progress through a 0-based, five-stage process (Stage 0 through Stage 4); Stage 4 proposals are eligible for inclusion in the next yearly revision, with the entire process spanning several months to a few years and managed openly on TC39's GitHub repository, though only members vote in meetings.

A fundamental guiding principle of JavaScript is strict backwards compatibility, ensuring that any code once accepted as valid JS will continue to work in future versions. This means code written in 1995, however primitive, should still execute today, providing developers confidence that browser updates will not unpredictably break their programs. This commitment, spanning nearly 25 years, places a significant burden on the language's evolution, as decisions are effectively permanent and mistakes cannot easily be removed. While rare, minor backwards-incompatible changes are sometimes made after extensive study of existing web code to estimate impact, with browsers ultimately deciding if the benefits outweigh the small-scale breakage.

Conversely, JavaScript is not forwards-compatible, meaning newer language features will cause errors or crashes when run in older JS engines. This contrasts with declarative languages like HTML and CSS, which are forwards-compatible and simply skip unrecognized declarations. To address this gap, developers rely on transpiling, using tools like Babel to convert modern JavaScript syntax (e.g., `let` declarations) into older, equivalent forms. Additionally, polyfilling (or 'shimming') provides definitions for newer API methods (e.g., `Promise.prototype.finally()`) in environments where they are natively absent. Both transpiling and polyfilling are crucial techniques in the JavaScript development pipeline, enabling the use of current stable features while maintaining support for older environments.

📚 Continue Your Learning Journey — No Payment Required

Access the complete You Don't Know JS: Types & Grammar summary with audio narration, key takeaways, and actionable insights from Kyle Simpson.