Top 18 New Things in JS - Part 2 — Syntax Podcast 082

A Tasty Treats Podcast for Web Developers.

Ask a Potluck Question →
Wes Bos

Wes Bos

Full Stack JavaScript Developer. Creator of really good web development courses. BBQ enthusiast.

Scott Tolinski

Scott Tolinski

Web Developer, Creator of Level Up Tuts, Bboy, Robotops Crew and Youtuber

Playing: 082: Top 18 New Things in JS - Part 2

0:00

LOUDNESS

Oct 10th, 2018

Top 18 New Things in JS - Part 2

👇 Download Show✏️ Edit Show Notes

In this episode Wes and Scott continue the discussion of their favorite top 18 new things in Javascript.

Freshbooks - Sponsor

Get a 30 day free trial of Freshbooks at freshbooks.com/syntax and put SYNTAX in the "How did you hear about us?" section.

Graph CMS - Sponsor

GraphCMS is trying to be the world’s most developer friendly CMS. It's a great way to build a GraphQL API without having to write a custom GraphQL server. Try out the API-first CMS of the future today at graphcms.com/syntaxfm.

Show Notes

3:30

  • Spread
const array1 = [1, 2, 3]
const array2 = [0, ...array1]

8:40

  • Rests
const teams = [player1, player2, player3]
const [leader, ...members] = teams

11:54

  • Arrow Functions
const add = (x, y) => {
  return x + y
}
// equal to
const add = (x, y) => x + y

15:48

  • Default Function Arguments
function mul(x, y = 1) {
  return x * y
}
mul(2, 3) // 2 * 3 = 6
mul(2) // 2 * 1 = 2

19:47

  • Named params
function ({ array, element }) {
  return [element, ...array]
}

21:26

  • Modules
// @ a.js
export const param = 1
const defaultParam = 2
export default defaultParam

// @ b.js
import defaultParam, { param } from './a'

// rename import module
import newDefaultParam from './a' // rename default export directly
import { param as newParam} from './a' // use `as` for rename

35:35

  • Classes
class Polygon {
  constructor(height, width) {
    this.height = height;
    this.width = width;
  }

  get area() {
    return this.calcArea();
  }

  calcArea() {
    return this.height * this.width;
  }
}

class Square extends Polygon {
  ...
}

41:54

  • Things we never use
await const users = fetchUser().catch(e => ...)

for(let element of array) { ... }

const set1 = new Set([1, 2, 3, 4, 5]);

××× SIIIIICK ××× PIIIICKS ×××

Shameless Plugs

Tweet us your tasty treats!