SlideShare a Scribd company logo
JavaScript Today
Muhammed Albarmavi
Agenda
JavaScript?
Version ES 1,2,3,4 @.@,5.1 ,5, 6 (ES2015)
,..
Community
Wired parts
Modern JavaScript
1995-1999
In 1995, Netscape Communications recruited Brendan Eich with
the goal of embedding the Scheme programming language into its
Netscape Navigator. Before he could get started, Netscape
Communications collaborated with Sun Microsystems to include
Sun's more static programming language, Java, in Netscape
Navigator so as to compete with Microsoft for user adoption of
Web technologies and platforms. Netscape Communications then
decided that the scripting language they wanted to create would
complement Java and should have a similar syntax, which
excluded adopting other languages such as Perl, Python, TCL, or
Scheme. To defend the idea of JavaScript against competing
proposals, the company needed a prototype. Eich wrote one in 10
days, in May 1995.
Although it was developed under the name Mocha, the language
was officially called LiveScript when it first shipped in beta
releases of Netscape Navigator 2.0 in September 1995, but it
was renamed JavaScript when it was deployed in the Netscape
Navigator 2.0 beta 3 in December ,The final choice of name
caused confusion, giving the impression that the language was a
spin-off of the Java programming language, and the choice has
been characterized as a marketing ploy by Netscape to give
JavaScript the cachet of what was then the hot new Web
programming language.
Standardization
November 1996, Netscape submitted JavaScript to ECMA International to
carve out a standard specification, which other browser vendors could
then implement based on the work done at Netscape. This led to the
official release of the language specification ECMAScript published in
the first edition of the ECMA-262 standard in June 1997, with
JavaScript being the most well known of the
implementations. ActionScript and JScript were other well-known
implementations of ECMAScript.
The release of ECMAScript 2 in June 1998 continued the standards
process cycle, conforming some modifications to the ISO/IEC 16262
international standard. ECMAScript 3 was released in December 1999.
Next ECMAScript Future ??
2000-2005
Standardization
ECMAScript 4 work led by Waldemar Horwat (then at Netscape, now at Google) started in
2000. Microsoft initially participated and implemented some proposals in their JScript .NET language.
Over time it was clear that Microsoft had no intention of cooperating or implementing proper
JavaScript in Internet Explorer, even though they had no competing proposal and they had a partial
(and diverged at this point) implementation on the .NET server side. So by 2003, the original
ECMAScript 4 work was mothballed.
The next major event was in 2005, with two major happenings in JavaScript's history. First, Brendan
Eich and Mozilla rejoined Ecma International as a not-for-profit member and work started
on ECMAScript for XML (E4X), the ECMA-357 standard, which came from ex-Microsoft employees at BEA
Systems (originally acquired as Crossgain). This led to working jointly with Macromedia (later
acquired by Adobe Systems), who were implementing E4X in ActionScript 3 (ActionScript 3 was a fork of
original ECMAScript 4).
So, along with Macromedia, work restarted on ECMAScript 4 with the goal of standardizing what was in
ActionScript 3. To this end, Adobe Systems released the ActionScript Virtual Machine 2, code
named Tamarin, as an open source project. But Tamarin and ActionScript 3 were too different from web
JavaScript to converge, as was realized by the parties in 2007 and 2008.
Alas, there was still turmoil between the various players; Douglas Crockford—then at Yahoo!—joined
forces with Microsoft in 2007 to oppose ECMAScript 4, which led to the ECMAScript 3.1 effort. The
development of ECMAScript 4 was never completed, but that work influenced subsequent versions.
Community - AJAX
While all of this was happening, the open source and developer communities
set to work to revolutionize what could be done with JavaScript. This
community effort was sparked in 2005 when Jesse James Garrett released a
white paper in which he coined the term Ajax, and described a set of
technologies, of which JavaScript was the backbone, used to create web
applications where data can be loaded in the background, avoiding the need
for full page reloads and leading to more dynamic applications.
2006-2009
Community - JQuery
jQuery is a JavaScript library designed to simplify HTML DOM tree traversal and
manipulation, as well as event handling, CSS animation, and Ajax
$(document).ready(function(){
$(‘#btnLogin’).on(‘click’,function(){
console.log($(‘#txtUserName’).val());
)
})
JavaScript Library Author vs JavaScript Developer
jQuery is a JavaScript library designed to simplify HTML DOM tree traversal and
manipulation, as well as event handling, CSS animation, and Ajax
$(document).ready(function(){
$(‘#btnLogin’).on(‘click’,function(){
console.log($(‘#txtUserName’).val());
)
})
Until 2009
Jan 2006, Firebug 0.2
ECMAScript 5 (2009) just toke 10 years TT_TT
Chrome V8 September 2, 2008
GitHub 2008
Node.js May 27, 2009 (JavaScript runtime environment)
Underscore.js October 28, 2009
2010-2015
2010 until 2015
AngularJS October 20, 2010
Backbone.js October 13, 2010
Npm 12 January 2010
Knockout July 5, 2010
Ember.js 8 December 2011
Grunt 11 January 2012
Webpack March 10, 2012
Lodash April 23, 2012
ECMA-262 ECMAScript Language Specification 5.1 edition (June 2011).
ECMA-262 ECMAScript Language Specification 6 edition (ES 6 / ES2015) June 2015
let , const , promise , for/of ,class , extends , super , default parameter , …rest ,… spared , map , set
,static , get ,set , Symbol, iterator, generator ,
http://es6-features.org/#Constants
Weird Parts
Weird Parts
Don’t use == it is evil use ===
Weird Parts
• setInterval
• clearInterval
• fetch
• this
• document
• document.getElementById
• document.querySelector
• alert
• localStorage
• confirm…
Weird Parts
Weird Parts
1 == ‘1’
1 == true
1 === ‘1’
NaN == NaN
{} == {}
{} === {}
1 + ‘1’
1 – ‘1’
‘5’ – ‘1’
0 == []
"0" == []
Weird Parts
1 == ‘1’ => true
1 == true => true
1 === ‘1’ => false
NaN == NaN => false
{} == {} => false
{} === {} => false
1 + ‘1’ => ’11’
1 – ‘1’ => 0
‘5’ – ‘1’ => 4
0 == [] => true
"0" == [] => false
Solution :
https://www.ecma-international.org/ecma-262/5.1/#sec-11.9.3
Weird Parts
Var foo = 1;
Var foobar = function() {
console.log(foo);
var foo = 2;
}
foobar();
You don’t know JS by kyle simpson
• Get Started
• Scope & Closures
• this & Object Prototypes
• Types & Grammar
• Sync & Async
• ES.Next & Beyond
https://github.com/getify/You-Dont-Know-JS/tree/1st-ed
Today
Today
Today
 Modern IDE / vscode
 Typescript Language
 Babel compiler
 Modern Browsers (chrome , opera , edge base of the chromium project)
 Developer tools
 Modern framework like Angular , React push to writer JavaScript more than framework api.
 Develop desktop app with electron (cross platform ) as example vscode , slack , postman .
 Develop Mobile app with native script , react native , ionic …
 Develop rest service api with framework like express , nest
 Most of all framework has cli to increase developer productivity

More Related Content

PPTX
Event Driven Architecture
PDF
Open Standards Enabling Digital Transformation
ODP
Microservices Patterns and Anti-Patterns
PPTX
Docker Kubernetes Istio
PDF
Dynatrace - Red Hat workshop : Monolith to Microservices
PDF
Cloud Native Architectures for Devops
PPTX
The Impact of Messaging Standards on Event-Driven Architecture and IoT
PDF
How easy (or hard) it is to monitor your graph ql service performance
Event Driven Architecture
Open Standards Enabling Digital Transformation
Microservices Patterns and Anti-Patterns
Docker Kubernetes Istio
Dynatrace - Red Hat workshop : Monolith to Microservices
Cloud Native Architectures for Devops
The Impact of Messaging Standards on Event-Driven Architecture and IoT
How easy (or hard) it is to monitor your graph ql service performance

What's hot (20)

PDF
Apache Kafka Scalable Message Processing and more!
PPTX
Introduction to Microservices
PDF
IE issues with AJAX Apps
PPTX
Денис Баталов
PDF
Building a Bank out of Microservices (NDC Sydney, August 2016)
PDF
Orchestrated - multi tenant architecture at scale with serverless
PDF
12 Factor Serverless Applications - Mike Morain, AWS - Cloud Native Day Tel A...
PPTX
Microservices: Why and When? - Alon Fliess, CodeValue - Cloud Native Day Tel ...
PDF
Implementing Microservices Security Patterns & Protocols with Spring
PDF
Technology choices for Apache Kafka and Change Data Capture
PPTX
Cloud architecture
PPTX
Springboot Microservices
PPTX
Multi-Cloud Micro-Services with CloudFoundry
PDF
Operationalizing Amazon EKS
PPTX
Microservices
PDF
IBM Message Hub: Cloud-Native Messaging
PPT
PDF
Modernizing the monolithic architecture to container based architecture apaco...
KEY
Event Driven Architecture at NDDNUG
PPTX
Building 12-factor Cloud Native Microservices
Apache Kafka Scalable Message Processing and more!
Introduction to Microservices
IE issues with AJAX Apps
Денис Баталов
Building a Bank out of Microservices (NDC Sydney, August 2016)
Orchestrated - multi tenant architecture at scale with serverless
12 Factor Serverless Applications - Mike Morain, AWS - Cloud Native Day Tel A...
Microservices: Why and When? - Alon Fliess, CodeValue - Cloud Native Day Tel ...
Implementing Microservices Security Patterns & Protocols with Spring
Technology choices for Apache Kafka and Change Data Capture
Cloud architecture
Springboot Microservices
Multi-Cloud Micro-Services with CloudFoundry
Operationalizing Amazon EKS
Microservices
IBM Message Hub: Cloud-Native Messaging
Modernizing the monolithic architecture to container based architecture apaco...
Event Driven Architecture at NDDNUG
Building 12-factor Cloud Native Microservices
Ad

Similar to Javascript Today (20)

PDF
ECMAScript 6 from an Attacker's Perspective - Breaking Frameworks, Sandboxes,...
PPTX
Brief History of JavaScript
PDF
Evolving js
ODP
History of JavaScript
PDF
An Intro to Js & Node.js
PPT
Introduction to Javascript
PPTX
A walkthrough of JavaScript ES6 features
PPTX
JAVASRIPT and PHP (Hypertext Preprocessor)
PPTX
JavaScript as Development Platform
PPTX
WT Module-3.pptx
PPT
jQuery with javascript training by Technnovation Labs
PPTX
There Is No JavaScript
PPTX
Noam Kfir - There is no Java Script - code.talks 2015
PDF
Red Dirt JS
PPT
Scripting languages
PPTX
Javascript 01 (js)
PPTX
Java script introduction
PDF
ECMASCRIPT.NEXT
PPTX
JavaScript: the who, what, when, where, why, & how
PDF
ES2015 / ES6: Basics of modern Javascript
ECMAScript 6 from an Attacker's Perspective - Breaking Frameworks, Sandboxes,...
Brief History of JavaScript
Evolving js
History of JavaScript
An Intro to Js & Node.js
Introduction to Javascript
A walkthrough of JavaScript ES6 features
JAVASRIPT and PHP (Hypertext Preprocessor)
JavaScript as Development Platform
WT Module-3.pptx
jQuery with javascript training by Technnovation Labs
There Is No JavaScript
Noam Kfir - There is no Java Script - code.talks 2015
Red Dirt JS
Scripting languages
Javascript 01 (js)
Java script introduction
ECMASCRIPT.NEXT
JavaScript: the who, what, when, where, why, & how
ES2015 / ES6: Basics of modern Javascript
Ad

More from Sistek Yazılım (10)

PPTX
Amazon web service
PPTX
Dekleratif Transaction Yönetimi
PPTX
Dashboard Kit
PPTX
PPTX
PPTX
Test Driven Development
PPTX
Servlet Container Nedir?
PPTX
Hybrid Mobile Applications
PPTX
No SQL & MongoDB Nedir?
PPTX
Spring uygulamaların exception handling yönetimi
Amazon web service
Dekleratif Transaction Yönetimi
Dashboard Kit
Test Driven Development
Servlet Container Nedir?
Hybrid Mobile Applications
No SQL & MongoDB Nedir?
Spring uygulamaların exception handling yönetimi

Recently uploaded (20)

PDF
wealthsignaloriginal-com-DS-text-... (1).pdf
PPTX
Odoo POS Development Services by CandidRoot Solutions
PDF
Which alternative to Crystal Reports is best for small or large businesses.pdf
PPTX
Operating system designcfffgfgggggggvggggggggg
PDF
Upgrade and Innovation Strategies for SAP ERP Customers
PDF
Claude Code: Everyone is a 10x Developer - A Comprehensive AI-Powered CLI Tool
PDF
Internet Downloader Manager (IDM) Crack 6.42 Build 41
PDF
Adobe Illustrator 28.6 Crack My Vision of Vector Design
PPTX
Transform Your Business with a Software ERP System
PDF
AI in Product Development-omnex systems
PDF
Addressing The Cult of Project Management Tools-Why Disconnected Work is Hold...
PDF
Nekopoi APK 2025 free lastest update
PDF
System and Network Administraation Chapter 3
PDF
Design an Analysis of Algorithms II-SECS-1021-03
PDF
System and Network Administration Chapter 2
PDF
Internet Downloader Manager (IDM) Crack 6.42 Build 42 Updates Latest 2025
PPTX
VVF-Customer-Presentation2025-Ver1.9.pptx
PDF
Why TechBuilder is the Future of Pickup and Delivery App Development (1).pdf
PPTX
Agentic AI : A Practical Guide. Undersating, Implementing and Scaling Autono...
PPTX
CHAPTER 2 - PM Management and IT Context
wealthsignaloriginal-com-DS-text-... (1).pdf
Odoo POS Development Services by CandidRoot Solutions
Which alternative to Crystal Reports is best for small or large businesses.pdf
Operating system designcfffgfgggggggvggggggggg
Upgrade and Innovation Strategies for SAP ERP Customers
Claude Code: Everyone is a 10x Developer - A Comprehensive AI-Powered CLI Tool
Internet Downloader Manager (IDM) Crack 6.42 Build 41
Adobe Illustrator 28.6 Crack My Vision of Vector Design
Transform Your Business with a Software ERP System
AI in Product Development-omnex systems
Addressing The Cult of Project Management Tools-Why Disconnected Work is Hold...
Nekopoi APK 2025 free lastest update
System and Network Administraation Chapter 3
Design an Analysis of Algorithms II-SECS-1021-03
System and Network Administration Chapter 2
Internet Downloader Manager (IDM) Crack 6.42 Build 42 Updates Latest 2025
VVF-Customer-Presentation2025-Ver1.9.pptx
Why TechBuilder is the Future of Pickup and Delivery App Development (1).pdf
Agentic AI : A Practical Guide. Undersating, Implementing and Scaling Autono...
CHAPTER 2 - PM Management and IT Context

Javascript Today

  • 2. Agenda JavaScript? Version ES 1,2,3,4 @.@,5.1 ,5, 6 (ES2015) ,.. Community Wired parts Modern JavaScript
  • 4. In 1995, Netscape Communications recruited Brendan Eich with the goal of embedding the Scheme programming language into its Netscape Navigator. Before he could get started, Netscape Communications collaborated with Sun Microsystems to include Sun's more static programming language, Java, in Netscape Navigator so as to compete with Microsoft for user adoption of Web technologies and platforms. Netscape Communications then decided that the scripting language they wanted to create would complement Java and should have a similar syntax, which excluded adopting other languages such as Perl, Python, TCL, or Scheme. To defend the idea of JavaScript against competing proposals, the company needed a prototype. Eich wrote one in 10 days, in May 1995.
  • 5. Although it was developed under the name Mocha, the language was officially called LiveScript when it first shipped in beta releases of Netscape Navigator 2.0 in September 1995, but it was renamed JavaScript when it was deployed in the Netscape Navigator 2.0 beta 3 in December ,The final choice of name caused confusion, giving the impression that the language was a spin-off of the Java programming language, and the choice has been characterized as a marketing ploy by Netscape to give JavaScript the cachet of what was then the hot new Web programming language.
  • 6. Standardization November 1996, Netscape submitted JavaScript to ECMA International to carve out a standard specification, which other browser vendors could then implement based on the work done at Netscape. This led to the official release of the language specification ECMAScript published in the first edition of the ECMA-262 standard in June 1997, with JavaScript being the most well known of the implementations. ActionScript and JScript were other well-known implementations of ECMAScript. The release of ECMAScript 2 in June 1998 continued the standards process cycle, conforming some modifications to the ISO/IEC 16262 international standard. ECMAScript 3 was released in December 1999.
  • 9. Standardization ECMAScript 4 work led by Waldemar Horwat (then at Netscape, now at Google) started in 2000. Microsoft initially participated and implemented some proposals in their JScript .NET language. Over time it was clear that Microsoft had no intention of cooperating or implementing proper JavaScript in Internet Explorer, even though they had no competing proposal and they had a partial (and diverged at this point) implementation on the .NET server side. So by 2003, the original ECMAScript 4 work was mothballed. The next major event was in 2005, with two major happenings in JavaScript's history. First, Brendan Eich and Mozilla rejoined Ecma International as a not-for-profit member and work started on ECMAScript for XML (E4X), the ECMA-357 standard, which came from ex-Microsoft employees at BEA Systems (originally acquired as Crossgain). This led to working jointly with Macromedia (later acquired by Adobe Systems), who were implementing E4X in ActionScript 3 (ActionScript 3 was a fork of original ECMAScript 4). So, along with Macromedia, work restarted on ECMAScript 4 with the goal of standardizing what was in ActionScript 3. To this end, Adobe Systems released the ActionScript Virtual Machine 2, code named Tamarin, as an open source project. But Tamarin and ActionScript 3 were too different from web JavaScript to converge, as was realized by the parties in 2007 and 2008. Alas, there was still turmoil between the various players; Douglas Crockford—then at Yahoo!—joined forces with Microsoft in 2007 to oppose ECMAScript 4, which led to the ECMAScript 3.1 effort. The development of ECMAScript 4 was never completed, but that work influenced subsequent versions.
  • 10. Community - AJAX While all of this was happening, the open source and developer communities set to work to revolutionize what could be done with JavaScript. This community effort was sparked in 2005 when Jesse James Garrett released a white paper in which he coined the term Ajax, and described a set of technologies, of which JavaScript was the backbone, used to create web applications where data can be loaded in the background, avoiding the need for full page reloads and leading to more dynamic applications.
  • 12. Community - JQuery jQuery is a JavaScript library designed to simplify HTML DOM tree traversal and manipulation, as well as event handling, CSS animation, and Ajax $(document).ready(function(){ $(‘#btnLogin’).on(‘click’,function(){ console.log($(‘#txtUserName’).val()); ) })
  • 13. JavaScript Library Author vs JavaScript Developer
  • 14. jQuery is a JavaScript library designed to simplify HTML DOM tree traversal and manipulation, as well as event handling, CSS animation, and Ajax $(document).ready(function(){ $(‘#btnLogin’).on(‘click’,function(){ console.log($(‘#txtUserName’).val()); ) })
  • 15. Until 2009 Jan 2006, Firebug 0.2 ECMAScript 5 (2009) just toke 10 years TT_TT Chrome V8 September 2, 2008 GitHub 2008 Node.js May 27, 2009 (JavaScript runtime environment) Underscore.js October 28, 2009
  • 17. 2010 until 2015 AngularJS October 20, 2010 Backbone.js October 13, 2010 Npm 12 January 2010 Knockout July 5, 2010 Ember.js 8 December 2011 Grunt 11 January 2012 Webpack March 10, 2012 Lodash April 23, 2012 ECMA-262 ECMAScript Language Specification 5.1 edition (June 2011). ECMA-262 ECMAScript Language Specification 6 edition (ES 6 / ES2015) June 2015 let , const , promise , for/of ,class , extends , super , default parameter , …rest ,… spared , map , set ,static , get ,set , Symbol, iterator, generator , http://es6-features.org/#Constants
  • 19. Weird Parts Don’t use == it is evil use ===
  • 20. Weird Parts • setInterval • clearInterval • fetch • this • document • document.getElementById • document.querySelector • alert • localStorage • confirm…
  • 22. Weird Parts 1 == ‘1’ 1 == true 1 === ‘1’ NaN == NaN {} == {} {} === {} 1 + ‘1’ 1 – ‘1’ ‘5’ – ‘1’ 0 == [] "0" == []
  • 23. Weird Parts 1 == ‘1’ => true 1 == true => true 1 === ‘1’ => false NaN == NaN => false {} == {} => false {} === {} => false 1 + ‘1’ => ’11’ 1 – ‘1’ => 0 ‘5’ – ‘1’ => 4 0 == [] => true "0" == [] => false Solution : https://www.ecma-international.org/ecma-262/5.1/#sec-11.9.3
  • 24. Weird Parts Var foo = 1; Var foobar = function() { console.log(foo); var foo = 2; } foobar();
  • 25. You don’t know JS by kyle simpson • Get Started • Scope & Closures • this & Object Prototypes • Types & Grammar • Sync & Async • ES.Next & Beyond https://github.com/getify/You-Dont-Know-JS/tree/1st-ed
  • 26. Today
  • 27. Today
  • 28. Today  Modern IDE / vscode  Typescript Language  Babel compiler  Modern Browsers (chrome , opera , edge base of the chromium project)  Developer tools  Modern framework like Angular , React push to writer JavaScript more than framework api.  Develop desktop app with electron (cross platform ) as example vscode , slack , postman .  Develop Mobile app with native script , react native , ionic …  Develop rest service api with framework like express , nest  Most of all framework has cli to increase developer productivity