Upgrade to Pro — share decks privately, control downloads, hide ads and more …

ES-What?!

 ES-What?!

ES-What?! - A talk for JavaScript North West, 18th October 2016:
http://www.meetup.com/JavaScript-North-West/events/233732806

Daniel Furze

October 18, 2016
Tweet

More Decks by Daniel Furze

Other Decks in Technology

Transcript

  1. @furzeface #JSNorthWest • New variable declarations • Template literals •

    New String methods • New Array methods • Default function parameters New stuff!
  2. @furzeface #JSNorthWest let and const const surname = 'White' //

    Constant declaration of surname - can’t change this let forename = 'Walter' // First declaration of forename function sayMyName () { forename = 'Flynn' // `let` can be overridden let nickname = 'Walt Jr.' // Block-scoped declaration of nickname let fullName = forename + ' \'' + nickname + '\' ' + surname console.log(fullName) } console.log(nickname) // Uncaught ReferenceError: nickname is not defined surname = 'White!' // SyntaxError: "surname" is read-only
  3. @furzeface #JSNorthWest let and const var surname = 'White' var

    forename = 'Walter' function sayMyName () { forename = 'Flynn' var nickname = 'Walt Jr.' var fullName = forename + ' \'' + nickname + '\' ' + surname console.log(fullName) } console.log(nickname) surname = 'White!'
  4. @furzeface #JSNorthWest Template literals var fullName = forename + '

    \'' + nickname + '\' ' + surname let fullName = `${forename} ${nickName} ${surname}`
  5. @furzeface #JSNorthWest Template literals let template = ` <ul> <li>Forename:

    ${forename}</li> <li>Surname: ${surname}</li> </ul> `
  6. @furzeface #JSNorthWest New String() methods const quote = `I am

    the one who knocks` quote.startsWith('I') // true quote.startsWith('Me') // false quote.endsWith('knocks') // true quote.endsWith('rings') // false quote.includes('the') // true quote.repeat(2) // I am the one who knocksI am the one who knocks
  7. @furzeface #JSNorthWest New Array() methods let arrayOf = Array.of(1, 2,

    3) // Similar to new Array(1, 2, 3) Array.of()
  8. @furzeface #JSNorthWest New Array() methods let characters = [ 'Walt',

    'Jesse' ] characters.fill('Heisenberg') // Fill all with new value Array.fill()
  9. @furzeface #JSNorthWest New Array() methods let characters = [ 'Walt',

    'Jesse' ] let name = characters.find(function (name) { return name !== 'Jesse' }) // Returns first element that matches the query // e.g. 'Walt' Array.find()
  10. @furzeface #JSNorthWest New Array() methods Array.findIndex() let characters = [

    'Walt', 'Jesse' ] let nameIndex = characters.findIndex(function (name) { return name !== 'Hank' }) // Returns first element index that is true // or -1 for false // Better than (indexOf(name) !== -1)
  11. @furzeface #JSNorthWest Default parameters function listFamily(husband, wife) { var husband

    = (husband !== undefined) ? husband : 'Walt' var wife = (wife !== undefined) ? wife : 'Skylar' }
  12. @furzeface #JSNorthWest Default parameters function listFamily (husband = 'Walt', wife

    = 'Skylar') { let family = `The husband, ${husband}. The wife, ${wife}.` console.log(family) }
  13. @furzeface #JSNorthWest Babel const name = 'Daniel' // constant declaration

    let surname = 'Furze' // let declaration var myName = () => { let middlename = 'James' // block-scoped let declaration surname = 'Furzo' let fullName = `${name} ${middlename} ${surname}` // multi-line template string console.log(fullName) } myName() 'use strict'; var name = 'Daniel'; var surname = 'Furze'; var myName = function myName() { var middlename = ‘James'; surname = 'Furzo'; var fullName = name + '\n\t ' + middlename + '\n\t ' + surname; console.log(fullName); }; myName();
  14. @furzeface #JSNorthWest More new stuff? • Arrow functions • Destructuring

    • Spread/rest parameters • Classes (not classes) • Promises • Generators • Proxies
  15. @furzeface #JSNorthWest Resources • http://es6.io - Wes’ course • http://leanpub.com/exploring-es6

    - free eBook • http://ponyfoo.com/articles/tagged/es6 - articles • http://es6katas.org - interactive exercises