Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
DenverScript: ES6 and Beyond
Search
Steve Kinney
April 28, 2015
Technology
1
140
DenverScript: ES6 and Beyond
Steve Kinney
April 28, 2015
Tweet
Share
More Decks by Steve Kinney
See All by Steve Kinney
Web Security, Frontend Masters
stevekinney
0
120
Making Music with the Web Audio API, JSConf Colombia 2023
stevekinney
0
34
React and TypeScript, Turing School
stevekinney
0
180
Redux Workshop, 2021-05-05
stevekinney
2
1.9k
TypeScript and React Utility Types
stevekinney
1
160
A Gentle Introduction to GraphQL Resolvers
stevekinney
1
140
React State
stevekinney
11
10k
React State: useEffect and Custom Hooks
stevekinney
0
200
Building Modular Frontend Architectures
stevekinney
1
420
Other Decks in Technology
See All in Technology
Spring Boot 2.7 から 3.1 への アップグレードに苦労したことと学んだこと
kometsubu
2
240
自分の学習データで画像生成AIを使ってみる話
moyashi
2
170
AthenaとStep Functionsで簡単ETLオーケストレーション #midosuji_tech
nayuts
0
330
変化と挑戦:NoSQLとNewSQL Serverless Databaseの技術革新とマルチテナンシーの秘密
yoshiitaka
18
4k
Autonomous Database サービス・アップデート (FY24)
oracle4engineer
PRO
2
720
Adopting ZGC in HBase for LINE Messaging
lycorptech_jp
PRO
2
260
Oracle Cloud Infrastructure IaaS 新機能アップデート 2024/3 - 2024/5
oracle4engineer
PRO
1
110
生成AIの活用方法 - 2024年現在、 結局どのように使えばいいのだろうか? / How to use Generative AI in 2024
nttcom
8
3.7k
大規模 SaaS の技術的意思決定を支える三要素 / Three elements that support technical decision-making for large-scale SaaS
_atsushisakai
0
120
障害対応の人間的側面
katsuhisa91
PRO
2
710
リードタイム、コストを最適化しながら 回復性を求めるクラウドネイティブ戦略 #CNDS2024
sgrokym
1
220
OpenFeatureと自動生成を活用したフィーチャーフラグの宣言的集約管理
biwashi
12
1.2k
Featured
See All Featured
Fantastic passwords and where to find them - at NoRuKo
philnash
40
2.6k
Unsuck your backbone
ammeep
664
57k
Rails Girls Zürich Keynote
gr2m
91
13k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
23
2k
Designing on Purpose - Digital PM Summit 2013
jponch
112
6.6k
The Brand Is Dead. Long Live the Brand.
mthomps
51
34k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
323
21k
Bootstrapping a Software Product
garrettdimon
PRO
302
110k
Build your cross-platform service in a week with App Engine
jlugia
227
17k
For a Future-Friendly Web
brad_frost
172
9.1k
Debugging Ruby Performance
tmm1
70
11k
Code Reviewing Like a Champion
maltzj
516
39k
Transcript
JavaScript: ES6 & Beyond Steve Kinney, @stevekinney
Hi. I'm Steve. @stevekinney |
[email protected]
ECMAScript 1: 1997
ECMAScript 2: 1998
ECMAScript 3: 1999
ECMAScript 4
None
ECMAScript 4
ECMAScript 3.1
ECMAScript 3.1 5: 2007
✨ Harmony ✨
None
ECMAScript 6
ECMAScript 6 2015
The Birth of a Standard • Stage 0 - Strawman
• Stage 1 - Proposal • Stage 2 - Draft • Stage 3 - Candidate • Stage 4 - Finished
So, what's in this fancy new language?
Classes, modules, array comprehension, generators, iterators, promises, tail call optimization,
proxies, string interpolation, unicode support, maps, sets, symbols, new APIs for primitive types, binary and octal literals, slides with too many words on them…
Firming up the foundation of the language.
let's have a little talk about var.
None
None
None
None
None
None
None
let: It's like var but it does the thing you
think it's going to do.
const
Turing students ask: “Hey Steve, what's your least favorite thing
about writing JavaScript?”
I hate string concatenation with the fiery passion of a
thousand burning suns.
None
None
None
None
None
None
Let's play a game.
None
None
None
None
None
None
None
None
None
There are some solutions to this problem, but none of
them are going to make you feel good.
None
None
None
None
Gross.
In ES5, we got Function.prototype.bind.
None
In ES6, we get arrow functions.
None
None
None
None
None
None
None
None
None
None
What's the point of multi-line arrow functions if I need
to return stuff? What gives?
Arrow functions also lexically bind this.
Let's do some refactoring.
None
None
None
None
But, that's not all…
None
None
In which, JavaScript gets some class.
None
None
None
None
None
None
None
None
None
None
This seems brittle. Can we refactor this?
None
None
None
None
None
None
None
None
None
What about inheritance?
None
None
None
None
None
There is still a bit more refactoring that we can
do here.
None
None
None
None
None
None
None
Other goodies: class methods and properties, inheriting from built-in types,
computed method names.
Symbols
None
None
Private Properties
Splat and spread.
None
None
None
None
None
None
None
None
None
None
None
None
None
None
None
None
None
None
None
Default Arguments
None
None
Generators
None
None
None
None
None
None
Synchronous-looking Asynchronous Code
None
None
None
None
None
None
Modules
None
None
None
None
None
None
Proxies
None
None
None
None
None
None
None
None
None
None
None
None
None
How long am I going to have to wait until
I can use this stuff?
You can use all of this and more today.
Transpilation.
None
None
The Birth of a Standard • Stage 0 - Strawman
• Stage 1 - Proposal • Stage 2 - Draft • Stage 3 - Candidate • Stage 4 - Finished
None
Thank you! Oh, also: Questions? All the places on the
Internet: @stevekinney Come be our friend and mentor our students. Hire our students: http://people.turing.io/