State of JS (2019 – 2020)
The Year of TS


Still most popular lib after JQuery



W3Techs
The Rise of Web Components

Disappearing Frameworks



Isomorphic ES modules

Highest Interest in GraphQL


New JS features coming soon
Object.fromEntries()

Dynamic import

String.prototype.matchAll()

Promise.allSettled()


Optional Chaining

Null Coalescing Operator

BigInt
let bigInt = 4n
console.log(bigInt * bigInt)
let bigInt = 4n + 2
console.log(bigInt)
BigInt(45) + 10n === 55n
45 + Number(10n) === 55
10 == 10n
// true
10 === 10n
// false
9 < 10n
// true
9n > 10
// false
BigInt
let bigInt = 4n
console.log(bigInt * bigInt)
let bigInt = 4n + 2
console.log(bigInt)
BigInt(45) + 10n === 55n
45 + Number(10n) === 55
10 == 10n
// true
10 === 10n
// false
9 < 10n
// true
9n > 10
// false
globalThis
globalThis.someFunction = () => 'hello'
console.log(globalThis.someFunction())
Node.js ES Modules
- Option 1: Rename .js files to .mjs files.
- Option 2: Update the root package.json file and specify the type as module.
// message file
async function sendMessage { ... }
export { sendMessage };
// index file
import { sendMessage } from "./message";
Node.js WebAssembly Modules
node --experimental-wasm-modules index.js
import * as imageUtils from "./imageUtils.wasm";
import * as fs from "fs";
( async () => {
const image = await fs.promises.readFile( "./image.png" );
const updatedImage = await imageUtils.rotate90degrees( image );
} )();
Node.js WebAssembly System Interface (WASI)

Node.js Full ICU since 13.x version

The End
State of JS (2019-2020)
By Nikita Malik
State of JS (2019-2020)
- 959