In this blog post, we examine how JavaScript’s global variables work. Several interesting phenomena play a role: the scope of scripts, the so-called global object, and more.
In this post, we look at public fields, which create instance properties and static properties.
Quoting a recent tweet by ES6 spec author Allen Wirfs-Brock:
Hoisting is old and confused terminology. Even prior to ES6: did it mean “moved to the top of the current scope” or did it mean “move from a nested block to the closest enclosing function/script scope”? Or both?
This blog post proposes a different approach to describing declarations (inspired by a suggestion by Allen).
Node.js 12 (which was released on 2019-04-23) brings improved support for ECMAScript modules. It implements phase 2 of the plan that was released late last year. For now, this support is available behind the usual flag --experimental-modules
.
Read on to find out how exactly this new support for ECMAScript modules works.
Brief spoiler: The filename extension .mjs
will be more convenient, but .js
can also be enabled for ES modules.
The proposal “JSON superset” (by Richard Gibson) is at stage 4 and therefore part of ECMAScript 2019. This blog post explains how it works.
String.prototype.trimStart
/ String.prototype.trimEnd
The proposal “String.prototype.trimStart
/ String.prototype.trimEnd
” (by Sebastian Markbåge) is at stage 4 and therefore part of ECMAScript 2019. This blog post explains how it works.
Symbol.prototype.description
The proposal “Symbol.prototype.description
” (by Michael Ficarra) is at stage 4 and therefore part of ECMAScript 2019. This blog post explains how it works.
JSON.stringify
The proposal “Well-formed JSON.stringify
” (by Richard Gibson) is at stage 4 and therefore part of ECMAScript 2019. This blog post explains how it works.
Object.fromEntries()
The proposal “Object.fromEntries
” (by Darien Maillet Valentine, Jordan Harband and Kevin Gibbons) is at stage 4 and therefore part of ECMAScript 2019. This blog post explains how it works.
In recent years, JavaScript has grown considerably in size. This blog post explores what’s still missing.