Key Differentiators: Good Developers vs….Others

May 21, 2019
Drinks on the house :)
(mention you are with the Meetup)
Internet Explorer
Netscape



Java

Java
Brendan Eich
Mocha
"scripting language"
Developed in 10 days
Internet Explorer
Netscape


Mocha
LiveScript
JavaScript
Internet Explorer
Netscape


Mocha
LiveScript
JavaScript
JScript
Internet Explorer
Netscape


“Best viewed in Netscape”
"Best viewed in Internet Explorer"
ECMAScript
TC39
(Technical Committee 39)
TC39
Stage 0 - "strawman"
Stage 1 - "proposal"
Stage 2 - "draft"
Stage 3 - "candidate"
Stage 4 - "finished"
There is no acceptance criteria and anyone can make a new proposal for this stage.
An actual formal proposal. These require a “champion” (i.e. a member of TC39 committee)
At this stage the syntax is precisely described using the formal TC39 spec language
The proposal has approved and further changes will only occur at the request of implementation authors. Here is where you can expect implementation to begin in JavaScript engines.
Indicates that the proposal has been accepted and the specification has been merged with the main JavaScript spec.
Why JavaScript
-
No setup required
- built right into the web browser!
-
It's everywhere!
- web browser (Angular, React), server-side (Node), mobile, desktop, games, Internet of Things, robotics, virtual reality, etc.
-
Large number of npm packages
- over 350k packages
- high-paying jobs for JavaScript developers
- JavaScript is an incredibly expressive and powerful language.
.....and some cons :/
Roadmap
Call Stack
Primitive Types
Values Types and References Types
== vs === vs typeoff
Function Scope, Block Scope and Lexical Scope
Expression vs Statement
IIFE, Modules and Namespaces
Messages Queue and Event Loop
setTimeout, setInterval and requestAnimationFrame
this, call, apply and bind
new, Constructor, instanceof and Instances
Pure Functions, Side Effects, and State Mutation
Closures
High Order Functions
async/await
map, reduce, filter









All About JavaScript
By Paul Beresuita
All About JavaScript
- 321