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

Made with Slides.com