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
Back to the future of JS
Search
Willian Martins
June 02, 2018
Technology
2
250
Back to the future of JS
Slides form JSConf EU talk.
Willian Martins
June 02, 2018
Tweet
Share
More Decks by Willian Martins
See All by Willian Martins
Empirical Observations on the The Future of Scalable UI Architecture
wmsbill
0
110
Além do else! Categorizando Pokemóns com Pattern Matching no JavaScript
wmsbill
0
790
De volta ao Futuro do JS: As próximas features e propostas incríveis
wmsbill
0
63
Back to the future of JS II: Beyond what we can foresee
wmsbill
0
78
A, B, C. 1, 2, 3. Iterables you and me.
wmsbill
0
68
Back to the future of JS II: Beyond what we can foresee
wmsbill
0
77
Back to the future of JS.
wmsbill
0
11
Node conf ar 2018.
wmsbill
0
380
Back to the future of JS
wmsbill
1
44
Other Decks in Technology
See All in Technology
AWSサービスメニュー開発をしていてAWSを好きだ!と感じた瞬間
toru_kubota
0
130
CTOから見た事業開発とプロダクト開発 / My Perspective on Business and Product Development as CTO
keisuke69
4
960
Github Actions 로 Android 팀의 효율성 극대화
hadonghyun
0
160
可視化プラットフォームGrafanaの基本と活用方法の全て
hamadakoji
0
230
フルリモートワークはエンジニアの夢を叶えたか? #cm_odyssey
mamohacy
2
600
Matterport を使ってクラスメソッド各拠点のバーチャルオフィスツアーを作成してみた
wakatsuki
0
160
【基調講演】変える、今ここから ― IoTとAIで紡ぐ未来
soracom
PRO
0
310
ABEMAにおけるLLMを用いたコンテンツベース推薦システム導入と効果検証
cyberagentdevelopers
PRO
1
700
楽しくGoを学び合う、LayerXの勉強会文化 / LayerX's study culture of having fun and learning Go together
ar_tama
2
350
What if...? 처음부터 다시 LLM 어플리케이션을 개발한다면
huffon
0
1k
Datadog Cloud SIEMを使ってAWS環境の脅威を可視化した話/lifeistech-datadog-cloud-siem
gidajun
0
480
運用改善、不都合な真実 / 20240722-ssmjp-kaizen
opelab
17
8k
Featured
See All Featured
Navigating Team Friction
lara
181
13k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
17
8.7k
Docker and Python
trallard
37
2.9k
Scaling GitHub
holman
458
140k
Gamification - CAS2011
davidbonilla
78
4.9k
Mobile First: as difficult as doing things right
swwweet
219
8.8k
Why Our Code Smells
bkeepers
PRO
332
56k
Bootstrapping a Software Product
garrettdimon
PRO
304
110k
Optimising Largest Contentful Paint
csswizardry
18
2.6k
From Idea to $5000 a Month in 5 Months
shpigford
377
46k
What the flash - Photography Introduction
edds
65
11k
Testing 201, or: Great Expectations
jmmastey
33
6.9k
Transcript
Hallo!
https://github.com/tc39/proposals
None
@wmsbill What is this?
@wmsbill this in the global scope Browser - window Web
worker - self NodeJS - module.exports
@wmsbill this inside a function?
@wmsbill this inside a function?
None
@wmsbill How to make this predictable? Reasoning the value of
this is tricky Function.prototype.bind Arrow function () => {}
With .bind()
With Arrow
@wmsbill Calling a knowing function
@wmsbill Extracting a method from an object
None
@wmsbill Two syntaxes Unary : :context.method() Binary context: :method()
@wmsbill Binary syntax
@wmsbill Unary syntax
@wmsbill
@wmsbill
@wmsbill
@wmsbill Bind operator is good for virtual methods But relies
on this to be bound
@wmsbill Composing without this
@wmsbill
@wmsbill
None
@wmsbill Pipeline operator |> It is a syntax sugar for
function composition It creates a way to streamline a chain of functions
@wmsbill Pipeline operator |>
@wmsbill
@wmsbill
@wmsbill
@wmsbill Function with more params
@wmsbill Function with more params
@wmsbill Awaiting a function
@wmsbill Awaiting a function
@wmsbill Awaiting a function
@wmsbill Awaiting a function
@wmsbill Awaiting a function
None
@wmsbill Smart pipeline
@wmsbill Smart pipeline Two types bare style and topic style
() or [] are disallowed in bare style When () or [] is needed, topic style is used # token is subject to change
@wmsbill What about curry?
@wmsbill F# pipeline proposal Extends the minimal proposal with an
await step Await step waits for the resolution of the previous step
@wmsbill F# pipeline proposal
@wmsbill
@wmsbill Partial application f(…) arity = n; partialapp(f(…)) arity =
m; m < n
@wmsbill
@wmsbill
@wmsbill Partial application in ES Achievable by Function.prototype.bind .bind() binds
context and parameters
@wmsbill
@wmsbill What about currying? We can achieve partial application with
curry Curry ≠ Partial application Curry returns arity n-1
@wmsbill
@wmsbill Partial application with arrow function
None
@wmsbill Partial application proposal Creates two new parameters tokens ?
For single argument . . . for multiple parameters
@wmsbill Partial application syntax
@wmsbill With arbitrary parameter
None
@wmsbill The . . . token Spread the unbound parameters
Useful when you want to bound first or last parameter
@wmsbill The . . . token
@wmsbill The . . . token
None
@wmsbill Partial application + pipeline
@wmsbill Partial application + pipeline
@wmsbill Should I use all of it in production? These
proposal are in very early stage The adoption of one, may change the syntax/semantics of other Not production ready (yet)
https://medium.com/@wmsbill https://twitter.com/wmsbill
[email protected]
Dankeshön!