Hi I m Jamund and I love ES6 and I m giving this talk.

Size: px
Start display at page:

Download "Hi I m Jamund and I love ES6 and I m giving this talk."

Transcription

1 ES6 for Everyone

2 Hi I m Jamund and I love ES6 and I m giving this talk.

3 Why are you here?» Node.js People?» UI Engineers?» Designers?» Web Devs?» Non-technical folks?

4 A LITTLE HISTORY OF JavaScript

5 JavaScript was created in 1995

6 European Computer Manufacturers Association adopted JavaScript in 1997 calling it EcmaScript

7 We still call it JavaScript though...

8 By 1999 EcmaScript was on version 3 and was being supported IE6+

9 EcamScript 3 Example var states = { "CA": "California", "WA": "Washington" }; for (var state in states) { if (states.hasownproperty(state)) { console.log(state); // "CA", "WA" } }

10 10 Years of Sadness

11 EcmaScript 5» Finalized in late 2009» Includes things like Object.keys(), Object.create() and Array.forEach()» As well as standardizing JSON» A lot of cool HTML5 features came out around this time including CSS3 and much of what is known as HTML5 (localstorage, Canvas, etc.)

12 EcamScript 5 Example var states = { "CA": "California", "WA": "Washington" }; Object.keys(states).forEach(function(state) { console.log(state); // "CA", "WA" });

13 JavaScript Today

14

15 JavaScript Today let states = { "CA": "California", "WA": "Washington" }; Object.keys(states).forEach(state => console.log(state)); // "CA", "WA"

16 Syntactic Sugar

17 Let's Get Started

18 Default Parameters

19 Default Parameters (ES5) $.fn.makejump = function(height) { height = height 50; $(this).css({ top: -1 * height, position: "relative" }); }; // make the chickens jump $(".chickens").makejump();

20 Default Parameters (ES6) $.fn.makejump = function(height = 50) { $(this).css({ top: -1 * height, position: "relative" }); }; // make the chickens jump $(".chickens").makejump();

21 Template Literals

22 Anytime you need to concatenate strings together consider using template literals instead. var name = first + ' ' + last; magically becomes: var name = `${first} ${last}`;

23 Here's another handy use for template literals: var x = ` I have a wonderful block of text here and I want it to span many many many lines `;

24 Destructuring

25 Destructuring Objects (ES5) // jquery example var data = $('body').data(), house = data.house, mouse = data.mouse;

26 Destructuring Objects (ES6) // jquery example var { house, mouse } = $('body').data();

27 Destructuring Objects (ES5) // node example var middleware = require('my-module').middleware;

28 Destructuring Objects (ES6) // node example var { middleware } = require('my-module');

29 Destructuring Arrays (ES5) // jquery example var columns = $(".column"), column1 = columns[0], column2 = columns[1];

30 Destructuring Arrays (ES6) // jquery example var [column1, column2] = $('.column');

31 Destructuring Arrays (ES5) // node example var file = fs.readfilesync('myfile.txt', 'utf8'); var contents = file.split('\n'); var line1 = contents[0]; var line2 = contents[1]; var line3 = contents[2]; var line5 = contents[4];

32 Destructuring Arrays (ES6) // node example var file = fs.readfilesync('myfile.txt', 'utf8'); var contents = file.split('\n'); var [line1,line2,line3,,line5] = contents;

33 Arrow Functions

34 Arrow Functions (ES5) var people = [ { name: "suzie", age: 26 }, { name: "joe", age 32 }, { name: "sally", age: 5 } ]; // var greetings = people.filter(function(person) { // return person.age > 18; // }) //.map(function(person) { // return "Hello " + person.name; // });

35 Arrow Functions (ES5) var people = [ { name: "suzie", age: 26 }, { name: "joe", age 32 }, { name: "sally", age: 5 } ]; var greetings = people.filter(function(person) { return person.age > 18; }) //.map(function(person) { // return "Hello " + person.name; // });

36 Arrow Functions (ES5) var people = [ { name: "suzie", age: 26 }, { name: "joe", age 32 }, { name: "sally", age: 5 } ]; var greetings = people.filter(function(person) { return person.age > 18; }).map(function(person) { return "Hello " + person.name; });

37 Arrow Functions (ES6) var people = [ { name: "suzie", age: 26 }, { name: "joe", age 32 }, { name: "sally", age: 5 } ]; var greetings = people.filter(person => person.age > 18).map(person => "Hello " + person.name);

38 Arrow Functions (ES5) var self = this; $.get("/awesome/api", function(data) { self.dosomethingwith(data); });

39 Arrow Functions (ES6) $.get("/awesome/api", data => { }); this.dosomethingwith(data);

40 Arrow Functions (ES5) $("button").click(function(event) { }); $(this).closest("form").submit();

41 Arrow Functions (ES6) $("button").click(event => { }); $(event.target).closest("form").submit();

42 Arrow Functions» No need to return in most cases» Parens generally required around params» Multi-line arrow funcs need curly brackets» To self-execute wrap in parens first

43 Arrow Function Examples var sayhi = () => console.log("hi"); var getname = (person) => person.name; var getname = person => person.name; var longthing = (one, two) => { return one * two; }; (x => console.log(x))("hey"); // self executing

44 All of the Above

45 Advanced Example (ES5) function getuser(id) { var id = id USER_ID; $.get('/people/' + id, function(person) { var age = person.age; var names = person.name.split(' '); var first = names[0]; console.log(first + ' is ' + age + '.'); }); }

46 Advanced Example (ES5) function getuser(id) { var id = id USER_ID; // $.get('/people/' + id, function(person) { // var age = person.age; // var names = person.name.split(' '); // var first = names[0]; // console.log(first + ' is ' + age + '.'); // }); }

47 Default Params (ES6) function getuser(id = USER_ID) { // $.get('/people/' + id, function(person) { // var age = person.age; // var names = person.name.split(' '); // var first = names[0]; // console.log(first + ' is ' + age + '.'); // }); }

48 Advanced Example function getuser(id = USER_ID) { $.get('/people/' + id, function(person) { var age = person.age; var names = person.name.split(' '); var first = names[0]; console.log(first + ' is ' + age + '.'); }); }

49 Destructuring Objects (ES6) function getuser(id = USER_ID) { $.get('/people/' + id, function(person) { var { name, age } = person; // var [first, last] = name.split(' '); // console.log(first + ' is ' + age + '.'); }); }

50 Destructuring Arrays (ES6) function getuser(id = USER_ID) { $.get('/people/' + id, function(person) { var { name, age } = person; var [first, last] = name.split(' '); // console.log(first + ' is ' + age + '.'); }); }

51 Combined Example function getuser(id = USER_ID) { $.get('/people/' + id, function(person) { var { name, age } = person; var [first, last] = name.split(' '); console.log(first + ' is ' + age + '.'); }); }

52 Arrow Functions(ES6) function getuser(id = USER_ID) { $.get('/people/' + id, (person) => { var { name, age } = person; var [first, last] = name.split(' '); console.log(first + ' is ' + age + '.'); }); }

53 Template Literals function getuser(id = USER_ID) { $.get(`/people/${id}`, (person) => { var { name, age } = person; var [first, last] = name.split(' '); console.log(`${first} is ${age}.`); }); }

54 amazing!

55 Promises

56 What are promises? Promises are an alternative way to deal with asynchronous code in JavaScript. They are composable and can help simplify error handling in while doing complex asynchronous operations.

57 Simple Callback Example readfile("data.txt", function(err, data) { if (err) { throw err; } console.log(data); });

58 Simple Promise Example readfile("data.txt").then(function(data) { }); console.log(data)

59 Simple Promise Example readfile("data.txt").then(function(data) { console.log(data) }, function(err) { // handle error somehow });

60 There are a lot of promise implementations» Q» BlueBird» jquery Deferred» Deferred.js» Vow» avow»...

61 Promise Version $.get(`/people/${id}`).then((person) => { var { name, age } = person; var [first, last] = name.split(' '); console.log(`${first} is ${age}.`); });

62 What happens where there's a problem? $.get(`/people/${id}`).then((person) => { var { name, age } = person; var [first, last] = name.split(' '); console.log(`${first} is ${age}.`); }).fail(function() { console.log(`could not retrieve person ${id}`); });

63 What if there's a problem inside our code? $.get(`/people/${id}`).then((person) => { var { name, age } = notperson; // throws a ReferenceError //... }).fail(function() { console.log(`could not retrieve person ${id}`); });

64 What if there's a problem inside our code? $.get(`/people/${id}`).then((person) => { var { name, age } = notperson; // throws a ReferenceError //... }).catch(function() { // catch can handle both types of errors console.log(`could not retrieve person ${id}`); });

65 catch() is coming in jquery 3

66 Using catch with jquery today // wrap $.get or $.ajax in Promise.resolve function get(url) { return Promise.resolve($.get(url)); } // reference the newly created function get("/my/url").then(dosomething).catch(allerrors);

67 One more thing...

68 Modules

69 Modules Coming in many shapes & sizes

70 Module Pattern var MY_MODULE = (function($) { var x, y, z; return $.dosomething(); }(jquery));

71 AMD Modules define(['jquery'], function($) { var x, y, z; return $.dosomething(); });

72 CommonJS Modules var $ = require('jquery'); var x, y, z; module.exports = $.dosomething();

73 ES6 MODULES: THE MODULE FORMAT TO END ALL MODULE FORMATS

74 ES6 Modules import $ from 'jquery'; var x, y, z; export default $.dosomething();

75 ES6 Modules (Examples) // export stuff in one file export var age = 32; export function printname() { console.log('jamund Ferguson'); }; // in another file import { age, printname } from 'my-module'; printname(); // Jamund Ferguson console.log(age); // 32

76 Write Modular JavaScript

77 We've covered a lot

78 We've covered a lot» Default Paramaters» Destructuring» Template Literals» Arrow Functions» Promises» ES6 Modules

79 What's Missing Here?

80 What's Missing?» Classes» Rest / Spread» Symbols» Object Shorthand» Generators / Iterators» Proxies» etc...

81 There's a lot of JavaScript these days Embrace It!

82

83

84 Questions?

85 use webpack & babel

86 Babel & Application Code // index.js require('babel/register') require('app.js'); // app.js import "thing" from thing; // command line node index.js

87 Babel & NPM Modules

88 That's it

Frontend UI Training. Whats App :

Frontend UI Training. Whats App : Frontend UI Training Whats App : + 916 667 2961 trainer.subbu@gmail.com What Includes? 1. HTML 5 2. CSS 3 3. SASS 4. JavaScript 5. ES 6/7 6. jquery 7. Bootstrap 8. AJAX / JSON 9. Angular JS 1x 10. Node

More information

Asynchronous Programming in Javascript, Part 2. CSCI 5828: Foundations of Software Engineering Lecture 19 10/25/2016

Asynchronous Programming in Javascript, Part 2. CSCI 5828: Foundations of Software Engineering Lecture 19 10/25/2016 Asynchronous Programming in Javascript, Part 2 CSCI 5828: Foundations of Software Engineering Lecture 19 10/25/2016 1 Goals Discussed asynchronous programming in Javascript in Lecture 18 The gap between

More information

RequireJS Javascript Modules for the Browser. By Ben Keith Quoin, Inc.

RequireJS Javascript Modules for the Browser. By Ben Keith Quoin, Inc. RequireJS Javascript Modules for the Browser By Ben Keith Quoin, Inc. Traditional Browser JS One global namespace Often inline JS code embedded directly in HTML Many tags with hidden ordering

More information

DECOUPLING PATTERNS, SERVICES AND CREATING AN ENTERPRISE LEVEL EDITORIAL EXPERIENCE

DECOUPLING PATTERNS, SERVICES AND CREATING AN ENTERPRISE LEVEL EDITORIAL EXPERIENCE DECOUPLING PATTERNS, SERVICES AND CREATING AN ENTERPRISE LEVEL EDITORIAL EXPERIENCE Who we are and Why we are here? Saurabh Chugh Started Drupal journey in 2010 with Drupal 6, long journey with Drupal

More information

Advanced React JS + Redux Development

Advanced React JS + Redux Development Advanced React JS + Redux Development Course code: IJ - 27 Course domain: Software Engineering Number of modules: 1 Duration of the course: 40 astr. hours / 54 study 1 hours Sofia, 2016 Copyright 2003-2016

More information

ECMAScript 2015 The Future of JavaScript is Now!

ECMAScript 2015 The Future of JavaScript is Now! ECMAScript 2015 The Future of JavaScript is Now! Tom Van Cutsem SPLASH-I 2015 @tvcutsem Talk Outline Part I: JavaScript s origins, and the long road to ECMAScript 6 Part II: a brief tour of ECMAScript

More information

Treating Framework Fatigue With JavaScript

Treating Framework Fatigue With JavaScript Treating Framework Fatigue With JavaScript Tim Doherty Software Architect /in/timdoherty timdoherty.net ??? Hey, this one looks cool! You May Suffer From Framework Fatigue Symptoms Confusion One-way reactive

More information

Full Stack boot camp

Full Stack boot camp Name Full Stack boot camp Duration (Hours) JavaScript Programming 56 Git 8 Front End Development Basics 24 Typescript 8 React Basics 40 E2E Testing 8 Build & Setup 8 Advanced JavaScript 48 NodeJS 24 Building

More information

One language to rule them all: TypeScript. Gil Fink CEO and Senior Consultant, sparxys

One language to rule them all: TypeScript. Gil Fink CEO and Senior Consultant, sparxys One language to rule them all: TypeScript Gil Fink CEO and Senior Consultant, sparxys About Me sparxys CEO and Senior consultant Microsoft MVP in the last 8 years Pro Single Page Application Development

More information

Web Development for Dinosaurs An Introduction to Modern Web Development

Web Development for Dinosaurs An Introduction to Modern Web Development Web Development for Dinosaurs An Introduction to Modern Web Development 1 / 53 Who Am I? John Cleaver Development Team Lead at Factivity, Inc. An Introduction to Modern Web Development - PUG Challenge

More information

Enterprise Web Development

Enterprise Web Development Enterprise Web Development Yakov Fain, Victor Rasputnis, Anatole Tartakovsky, and Viktor Gamov Beijing Cambridge Farnham Koln Sebastopol Tokyo O'REILLY Table of Contents Preface Introduction xi xxiii Part

More information

JavaScript Rd2. -Kyle Simpson, You Don t Know JS

JavaScript Rd2. -Kyle Simpson, You Don t Know JS JavaScript Rd2 [JavaScript] is simultaneously a simple, easy-to-use language that has broad appeal, and a complex and nuanced collection of language mechanics which without careful study will elude the

More information

Node.js. Node.js Overview. CS144: Web Applications

Node.js. Node.js Overview. CS144: Web Applications Node.js Node.js Overview JavaScript runtime environment based on Chrome V8 JavaScript engine Allows JavaScript to run on any computer JavaScript everywhere! On browsers and servers! Intended to run directly

More information

ReactJS and Webpack for Rails

ReactJS and Webpack for Rails Modern Web Conf 2015 ReactJS and Webpack for Rails Tse-Ching Ho 2015-05-16 @tsechingho 何澤清 紅寶 石商 人 Rubiest 鐵道 工 人 Rails worker 黃碼科技創辦 人 Goldenio founder 生物資訊 Bioinformatics 資料視覺化 Infographics Javascript

More information

Welcome to CS50 section! This is Week 10 :(

Welcome to CS50 section! This is Week 10 :( Welcome to CS50 section! This is Week 10 :( This is our last section! Final project dates Official proposals: due this Friday at noon Status report: due Monday, Nov 28 at noon Hackathon: Thursday, Dec

More information

IERG Tutuorial 5. Benedict Mak

IERG Tutuorial 5. Benedict Mak IERG4210 - Tutuorial 5 Benedict Mak Handlebars - Basic - Handlebars - Three elements - Template, control JS, Data - Two ways to use Handlebars - Client side - Handlebars - Get data in the form of JSON

More information

The Promised Land: Untangling Async Spaghetti Code

The Promised Land: Untangling Async Spaghetti Code The Promised Land: Untangling Async Spaghetti Code Presented by Trevor Burnham at FluentConf 2012 Preface The Compleat History of JavaScript (in about a minute) 1995: JavaScript discovered 2001: pg says

More information

Comprehensive AngularJS Programming (5 Days)

Comprehensive AngularJS Programming (5 Days) www.peaklearningllc.com S103 Comprehensive AngularJS Programming (5 Days) The AngularJS framework augments applications with the "model-view-controller" pattern which makes applications easier to develop

More information

TypeScript coding JavaScript without the pain

TypeScript coding JavaScript without the pain TypeScript coding JavaScript without the pain @Sander_Mak Luminis Technologies INTRO @Sander_Mak: Senior Software Engineer at Author: Dutch Java Magazine blog @ branchandbound.net Speaker: AGENDA Why TypeScript?

More information

mismatch between what is maybe possible today and what is going on in many of today's IDEs.

mismatch between what is maybe possible today and what is going on in many of today's IDEs. What will happen if we do very, very small and lightweight tools instead of heavyweight, integrated big IDEs? Lecturer: Martin Lippert, VMware and Eclispe tooling expert LIPPERT: Welcome, everybody, to

More information

Human-Computer Interaction Design

Human-Computer Interaction Design Human-Computer Interaction Design COGS120/CSE170 - Intro. HCI Instructor: Philip Guo Lab 6 - Connecting frontend and backend without page reloads (2016-11-03) by Michael Bernstein, Scott Klemmer, and Philip

More information

Index. Symbols. accessor properties, 74,

Index. Symbols. accessor properties, 74, Index Symbols * (asterisk), 139 142, 157, 159, 175 ** (exponentiation operator), 306 307 \ (backslash), 26 ` (backtick), 26 : (colon), 69, 88 {} (curly braces), 56 57, 88 89, 285 ${ } (substitution delimiters),

More information

IN Development in Platform Ecosystems Lecture 3: json, ajax, APIs

IN Development in Platform Ecosystems Lecture 3: json, ajax, APIs IN5320 - Development in Platform Ecosystems Lecture 3: json, ajax, APIs 3rd of September 2018 Department of Informatics, University of Oslo Magnus Li - magl@ifi.uio.no 1 Today s lecture 1. Objects and

More information

Lets take a closer look at Ajax & node.js. Claudia Hauff TI1506: Web and Database Technology

Lets take a closer look at Ajax & node.js. Claudia Hauff TI1506: Web and Database Technology Lets take a closer look at Ajax & node.js Claudia Hauff TI1506: Web and Database Technology ti1506-ewi@tudelft.nl At the end of this lecture, you should be able to Implement client-side code using plain

More information

Web UI. Survey of Front End Technologies. Web Challenges and Constraints. Desktop and mobile devices. Highly variable runtime environment

Web UI. Survey of Front End Technologies. Web Challenges and Constraints. Desktop and mobile devices. Highly variable runtime environment Web UI Survey of Front End Technologies Web UI 1 Web Challenges and Constraints Desktop and mobile devices - mouse vs. touch input, big vs. small screen Highly variable runtime environment - different

More information

Building Backbone Plugins

Building Backbone Plugins Building Backbone Plugins Eliminate The Boilerplate In Backbone.js Apps Derick Bailey and Jerome Gravel-Niquet 2013-2014 Muted Solutions, LLC. All Rights Reserved. Backbone.js and the Backbone.js logo

More information

Single-Page JavaScript Apps

Single-Page JavaScript Apps Single-Page JavaScript Apps with RequireJS and Backbone.js Mihai Bîrsan Who is this guy? Mihai Bîrsan Sr. Web Development Engineer Email Tools Team Amazon Development Center Romania We ve recently rebuilt

More information

What is Node.js? Tim Davis Director, The Turtle Partnership Ltd

What is Node.js? Tim Davis Director, The Turtle Partnership Ltd What is Node.js? Tim Davis Director, The Turtle Partnership Ltd About me Co-founder of The Turtle Partnership Working with Notes and Domino for over 20 years Working with JavaScript technologies and frameworks

More information

Arjen de Blok. Senior Technical Consultant bij ICT Groep ( sinds 1995 Programmeren sinds 1990 Technologiën. Links

Arjen de Blok. Senior Technical Consultant bij ICT Groep (  sinds 1995 Programmeren sinds 1990 Technologiën. Links Arjen de Blok Senior Technical Consultant bij ICT Groep (www.ict.eu) sinds 1995 Programmeren sinds 1990 Technologiën Links Visual C++ met Microsoft Foundation Classes.NET WinForms & WPF Silverlight ASP.NET

More information

Moodle JavaScript. Using AMD with RequireJS. Daniel Thee Roperto.

Moodle JavaScript. Using AMD with RequireJS. Daniel Thee Roperto. Moodle JavaScript Using AMD with RequireJS Daniel Thee Roperto daniel.roperto@catalyst-au.net Why JavaScript? HTML CSS information presentation JavaScript JSON behaviour more information Moodle JavaScript

More information

JavaScript: The Definitive Guide

JavaScript: The Definitive Guide T "T~ :15 FLA HO H' 15 SIXTH EDITION JavaScript: The Definitive Guide David Flanagan O'REILLY Beijing Cambridge Farnham Ktiln Sebastopol Tokyo Table of Contents Preface....................................................................

More information

Callbacks & Promises

Callbacks & Promises Callbacks & Promises Agenda Task: read a JSON file A Callback Based Library (fs) A Promise based Libdary (fs-readfile-promise) Function Styles: Anonymous function Named function Function Object Named Arrow

More information

JavaScript Fundamentals_

JavaScript Fundamentals_ JavaScript Fundamentals_ HackerYou Course Syllabus CLASS 1 Intro to JavaScript Welcome to JavaScript Fundamentals! Today we ll go over what programming languages are, JavaScript syntax, variables, and

More information

JavaScript: the language of browser interactions. Claudia Hauff TI1506: Web and Database Technology

JavaScript: the language of browser interactions. Claudia Hauff TI1506: Web and Database Technology JavaScript: the language of browser interactions Claudia Hauff TI1506: Web and Database Technology ti1506-ewi@tudelft.nl Densest Web lecture of this course. Coding takes time. Be friendly with Codecademy

More information

CodeValue. C ollege. Prerequisites: Basic knowledge of web development and especially JavaScript.

CodeValue. C ollege. Prerequisites: Basic knowledge of web development and especially JavaScript. Course Syllabuses Introduction to AngularJS Length: 3 days Prerequisites: Basic knowledge of web development and especially JavaScript. Objectives: Students will learn to take advantage of AngularJS and

More information

Modern frontend workflows in Liferay Portal and Liferay DXP. Iván Zaera Avellon, Liferay Chema Balsas, Liferay Pier Paolo Ramon, SMC

Modern frontend workflows in Liferay Portal and Liferay DXP. Iván Zaera Avellon, Liferay Chema Balsas, Liferay Pier Paolo Ramon, SMC Modern frontend workflows in Liferay Portal and Liferay DXP Iván Zaera Avellon, Liferay Chema Balsas, Liferay Pier Paolo Ramon, SMC https://www.youtube.com/watch?v=zcdwd4scz6i https://www.youtube.com/watch?v=8zfvppif-sm

More information

npm install [<name> [<name>...]] [--save --save-dev --save-optional]

npm install [<name> [<name>...]] [--save --save-dev --save-optional] Node Package Manager by Jesse Warden http://www.jessewarden.com v1 npm ls Everything you have installed in the current directory. npm search [search terms] Search the registry for packages matching the

More information

Tools. SWE 432, Fall Design and Implementation of Software for the Web

Tools. SWE 432, Fall Design and Implementation of Software for the Web Tools SWE 432, Fall 2016 Design and Implementation of Software for the Web Today Before we can really make anything, there s a bunch of technical stuff to get out of the way Tools make our lives so much

More information

Contents. Demos folder: Demos\14-Ajax. 1. Overview of Ajax. 2. Using Ajax directly. 3. jquery and Ajax. 4. Consuming RESTful services

Contents. Demos folder: Demos\14-Ajax. 1. Overview of Ajax. 2. Using Ajax directly. 3. jquery and Ajax. 4. Consuming RESTful services Ajax Contents 1. Overview of Ajax 2. Using Ajax directly 3. jquery and Ajax 4. Consuming RESTful services Demos folder: Demos\14-Ajax 2 1. Overview of Ajax What is Ajax? Traditional Web applications Ajax

More information

JavaScript. History. Adding JavaScript to a page. CS144: Web Applications

JavaScript. History. Adding JavaScript to a page. CS144: Web Applications JavaScript Started as a simple script in a Web page that is interpreted and run by the browser Supported by most modern browsers Allows dynamic update of a web page More generally, allows running an arbitrary

More information

Client Side JavaScript and AJAX

Client Side JavaScript and AJAX Client Side JavaScript and AJAX Client side javascript is JavaScript that runs in the browsers of people using your site. So far all the JavaScript code we've written runs on our node.js server. This is

More information

ECMAScript 2015 and beyond The Future of JavaScript is Now!

ECMAScript 2015 and beyond The Future of JavaScript is Now! ECMAScript 2015 and beyond The Future of JavaScript is Now! Tom Van Cutsem JS.BE Meetup @tvcutsem Talk Outline Part I: 20 years of JavaScript (or, the long road to ECMAScript 6) Part II: a brief tour of

More information

Copyright Descriptor Systems, Course materials may not be reproduced in whole or in part without prior written consent of Joel Barnum

Copyright Descriptor Systems, Course materials may not be reproduced in whole or in part without prior written consent of Joel Barnum Ajax The notion of asynchronous request processing using the XMLHttpRequest object has been around for several years, but the term "AJAX" was coined by Jesse James Garrett of Adaptive Path. You can read

More information

a Very Short Introduction to AngularJS

a Very Short Introduction to AngularJS a Very Short Introduction to AngularJS Lecture 11 CGS 3066 Fall 2016 November 8, 2016 Frameworks Advanced JavaScript programming (especially the complex handling of browser differences), can often be very

More information

CS193X: Web Programming Fundamentals

CS193X: Web Programming Fundamentals CS193X: Web Programming Fundamentals Spring 2017 Victoria Kirst (vrk@stanford.edu) CS193X schedule Today - Middleware and Routes - Single-page web app - More MongoDB examples - Authentication - Victoria

More information

ECMAScript 6 The Future of JavaScript is Now!

ECMAScript 6 The Future of JavaScript is Now! ECMAScript 6 The Future of JavaScript is Now! Tom Van Cutsem JOIN 15 @tvcutsem My involvement in JavaScript PhD on programming language technology 2010: Visiting Faculty at Google, Caja team Joined ECMA

More information

jquery and AJAX

jquery and AJAX jquery and AJAX http://www.flickr.com/photos/pmarkham/3165964414/ Dynamic HTML (DHTML) Manipulating the web page's structure is essential for creating a highly responsive UI Two main approaches Manipulate

More information

Index. Bare-bones connect application, 125 Binary JSON (BSON), 171. Callback functions asynchronous code ifelse, 199 loops,

Index. Bare-bones connect application, 125 Binary JSON (BSON), 171. Callback functions asynchronous code ifelse, 199 loops, Index A Amazon Web Services (AWS) console, 260 261 EBS, 262 EC2 Amazon Linux AMI, 262, 265 connect script and sample usage, 271 dashboard and Launch Instance, 265 global package installation, 273 hard

More information

Extra Notes - Data Stores & APIs - using MongoDB and native driver

Extra Notes - Data Stores & APIs - using MongoDB and native driver Extra Notes - Data Stores & APIs - using MongoDB and native driver Dr Nick Hayward Contents intro install MongoDB running MongoDB using MongoDB Robo 3T basic intro to NoSQL connect to MongoDB from Node.js

More information

Webpack. What is Webpack? APPENDIX A. n n n

Webpack. What is Webpack? APPENDIX A. n n n APPENDIX A n n n Webpack Although Webpack is used throughout the book, the primary focus of the book is on React, so Webpack didn t get a comprehensive treatment. In this Appendix, you will have the chance

More information

JavaScript and MVC Frameworks FRONT-END ENGINEERING

JavaScript and MVC Frameworks FRONT-END ENGINEERING FRONT-END ENGINEERING Introduction & History Introduction JavaScript is an incredible language to learn for anyone interested in getting into programming. It is the only programing language that can run

More information

delegator Documentation

delegator Documentation delegator Documentation Release 1.0.1 Daniel Knell August 25, 2014 Contents 1 Getting Started 3 1.1 Installation................................................ 3 1.2 Quickstart................................................

More information

Introduction to the SharePoint Framework Bob German Principal Architect - BlueMetal. An Insight company

Introduction to the SharePoint Framework Bob German Principal Architect - BlueMetal. An Insight company Introduction to the SharePoint Framework Bob German Principal Architect - BlueMetal An Insight company Bob German Bob is a Principal Architect at BlueMetal, where he leads Office 365 and SharePoint development

More information

Catching Up on ES6 (ES 2015)

Catching Up on ES6 (ES 2015) Catching Up on ES6 () Overview ES6, the latest version of JavaScript, added many great features This talk explains many of them including block scope default parameters rest and spread operators destructuring

More information

JavaScript Programming

JavaScript Programming JavaScript Programming Course ISI-1337B - 5 Days - Instructor-led, Hands on Introduction Today, JavaScript is used in almost 90% of all websites, including the most heavilytrafficked sites like Google,

More information

welcome to BOILERCAMP HOW TO WEB DEV

welcome to BOILERCAMP HOW TO WEB DEV welcome to BOILERCAMP HOW TO WEB DEV Introduction / Project Overview The Plan Personal Website/Blog Schedule Introduction / Project Overview HTML / CSS Client-side JavaScript Lunch Node.js / Express.js

More information

Sebastiano

Sebastiano Sebastiano Armeli @sebarmeli http://html5hub.com/wp-content/uploads/2013/11/es6-hiway-sign.png Sebastiano Armeli @sebarmeli ES6 History 199 199 199 199 199 200 200 5 6 7 8 9 0 3 JSScript ECMA-262 Ed.2

More information

The course is supplemented by numerous hands-on labs that help attendees reinforce their theoretical knowledge of the learned material.

The course is supplemented by numerous hands-on labs that help attendees reinforce their theoretical knowledge of the learned material. Lincoln Land Community College Capital City Training Center 130 West Mason Springfield, IL 62702 217-782-7436 www.llcc.edu/cctc WA2442 Introduction to JavaScript Objectives This intensive training course

More information

JSON Evaluation. User Store

JSON Evaluation. User Store Overview Demo following technologies: JSON Node Package Manager npm Node modules. Very brief introduction to asynchronous programming using async and await. Mongo db JSON JavaScript Object Notation. Inductive

More information

MANAGING ASYNCHRONY. An Application Perspective

MANAGING ASYNCHRONY. An Application Perspective MANAGING ASYNCHRONY An Application Perspective TYPES OF ASYNCHRONY DETERMINISTIC ORDER. (I/O) NON-DETERMINISTIC ORDER. (USER EVENTS) THESE ARE DIFFERENT. Because both are "events", we reach for the same

More information

JavaScript CS 4640 Programming Languages for Web Applications

JavaScript CS 4640 Programming Languages for Web Applications JavaScript CS 4640 Programming Languages for Web Applications 1 How HTML, CSS, and JS Fit Together {css} javascript() Content layer The HTML gives the page structure and adds semantics Presentation

More information

JavaScript Lecture 1

JavaScript Lecture 1 JavaScript Lecture 1 Waterford Institute of Technology May 17, 2016 John Fitzgerald Waterford Institute of Technology, JavaScriptLecture 1 1/31 Javascript Extent of this course A condensed basic JavaScript

More information

JAVASCRIPT AND JQUERY: AN INTRODUCTION (WEB PROGRAMMING, X452.1)

JAVASCRIPT AND JQUERY: AN INTRODUCTION (WEB PROGRAMMING, X452.1) Technology & Information Management Instructor: Michael Kremer, Ph.D. Class 4 Professional Program: Data Administration and Management JAVASCRIPT AND JQUERY: AN INTRODUCTION (WEB PROGRAMMING, X452.1) AGENDA

More information

55249: Developing with the SharePoint Framework Duration: 05 days

55249: Developing with the SharePoint Framework Duration: 05 days Let s Reach For Excellence! TAN DUC INFORMATION TECHNOLOGY SCHOOL JSC Address: 103 Pasteur, Dist.1, HCMC Tel: 08 38245819; 38239761 Email: traincert@tdt-tanduc.com Website: www.tdt-tanduc.com; www.tanducits.com

More information

Databases/JQuery AUGUST 1, 2018

Databases/JQuery AUGUST 1, 2018 Databases/JQuery AUGUST 1, 2018 Databases What is a Database? A table Durable place for storing things Place to easily lookup and update information Databases: The M in MVC What is a Database? Your Model

More information

widgetjs Documentation

widgetjs Documentation widgetjs Documentation Release 1.2.3 Nicolas Vanhoren Dec 22, 2017 Contents 1 Tutorial 3 1.1 Presentation of widgetjs......................................... 3 1.2 Quickstart................................................

More information

We are assuming you have node installed!

We are assuming you have node installed! Node.js Hosting We are assuming you have node installed! This lesson assumes you've installed and are a bit familiar with JavaScript and node.js. If you do not have node, you can download and install it

More information

Angular 2 Programming

Angular 2 Programming Course Overview Angular 2 is the next iteration of the AngularJS framework. It promises better performance. It uses TypeScript programming language for type safe programming. Overall you should see better

More information

"Charting the Course... MOC A: Developing with the SharePoint Framework. Course Summary

Charting the Course... MOC A: Developing with the SharePoint Framework. Course Summary Course Summary Description This five-day instructor-led course is intended for developers who want to be able to create client-side applications with SharePoint Framework. In this course, students will

More information

Building Your own Widget with ArcGIS API for JavaScript

Building Your own Widget with ArcGIS API for JavaScript Building Your own Widget with ArcGIS API for JavaScript Matt Driscoll @driskull JC Franco @arfncode Agenda About Widgets Prerequisites Widget framework Theming DO IT! Tips & tricks About Widgets What?

More information

c122mar413.notebook March 06, 2013

c122mar413.notebook March 06, 2013 These are the programs I am going to cover today. 1 2 Javascript is embedded in HTML. The document.write() will write the literal Hello World! to the web page document. Then the alert() puts out a pop

More information

Persistence & State. SWE 432, Fall 2016 Design and Implementation of Software for the Web

Persistence & State. SWE 432, Fall 2016 Design and Implementation of Software for the Web Persistence & State SWE 432, Fall 2016 Design and Implementation of Software for the Web Today What s state for our web apps? How do we store it, where do we store it, and why there? For further reading:

More information

Jquery.ajax Call Returns Status Code Of 200 But Fires Jquery Error

Jquery.ajax Call Returns Status Code Of 200 But Fires Jquery Error Jquery.ajax Call Returns Status Code Of 200 But Fires Jquery Error The request returns http 200 OK, but the xhr status is 0, error. jquery Ajax Request to get JSON data fires error event to make an ajax

More information

Angular 2 and TypeScript Web Application Development

Angular 2 and TypeScript Web Application Development Angular 2 and TypeScript Web Application Development Course code: IJ -19 Course domain: Software Engineering Number of modules: 1 Duration of the course: 40 study 1 hours Sofia, 2016 Copyright 2003-2016

More information

CL_55244 JavaScript for Developers

CL_55244 JavaScript for Developers www.ked.com.mx Av. Revolución No. 374 Col. San Pedro de los Pinos, C.P. 03800, México, CDMX. Tel/Fax: 52785560 Por favor no imprimas este documento si no es necesario. About this course. This course is

More information

JQuery and Javascript

JQuery and Javascript JQuery and Javascript Javascript - a programming language to perform calculations/ manipulate HTML and CSS/ make a web page interactive JQuery - a javascript framework to help manipulate HTML and CSS JQuery

More information

20480C: Programming in HTML5 with JavaScript and CSS3. Course Code: 20480C; Duration: 5 days; Instructor-led. JavaScript code.

20480C: Programming in HTML5 with JavaScript and CSS3. Course Code: 20480C; Duration: 5 days; Instructor-led. JavaScript code. 20480C: Programming in HTML5 with JavaScript and CSS3 Course Code: 20480C; Duration: 5 days; Instructor-led WHAT YOU WILL LEARN This course provides an introduction to HTML5, CSS3, and JavaScript. This

More information

CSCE 120: Learning To Code

CSCE 120: Learning To Code CSCE 120: Learning To Code Module 11.0: Consuming Data I Introduction to Ajax This module is designed to familiarize you with web services and web APIs and how to connect to such services and consume and

More information

ES Promise.

ES Promise. ES Promise Walkthrough @san650 A Promise represents a value which may be available now, or in the future, or never. Promise A Promise is a proxy for a value not necessarily known when the promise is created.

More information

Jquery Ajax Json Php Mysql Data Entry Example

Jquery Ajax Json Php Mysql Data Entry Example Jquery Ajax Json Php Mysql Data Entry Example Then add required assets in head which are jquery library, datatable js library and css By ajax api we can fetch json the data from employee-grid-data.php.

More information

Advanced JavaScript. Gary Sheppard & James Tedrick

Advanced JavaScript. Gary Sheppard & James Tedrick Advanced JavaScript Gary Sheppard & James Tedrick HTML 5 Working with jquery Modules, Dijits & AMD Cross-Domain Video Playback Canvas (2D graphics) Geolocation API Web Storage Drag & Drop Web Workers ApplicationCache

More information

LEARN WITH INTRODUCTION TO TYPESCRIPT

LEARN WITH INTRODUCTION TO TYPESCRIPT LEARN WITH INTRODUCTION TO TYPESCRIPT By Jeffry Houser http://www.learn-with.com http://www.jeffryhouser.com https://www.dot-com-it.com Copyright 2017 by DotComIt, LLC Contents Title Page... 2 Introduction

More information

Web Application Development

Web Application Development Web Application Development Produced by David Drohan (ddrohan@wit.ie) Department of Computing & Mathematics Waterford Institute of Technology http://www.wit.ie SERVER SIDE JAVASCRIPT PART 1 Outline 1.

More information

Pro JavaScript. Development. Coding, Capabilities, and Tooling. Den Odell. Apress"

Pro JavaScript. Development. Coding, Capabilities, and Tooling. Den Odell. Apress Pro JavaScript Development Coding, Capabilities, and Tooling Den Odell Apress" Contents J About the Author About the Technical Reviewers Acknowledgments Introduction xv xvii xix xxi Chapter 1: Object-Oriented

More information

Boot Camp JavaScript Sioux, March 31, 2011

Boot Camp JavaScript  Sioux, March 31, 2011 Boot Camp JavaScript http://rix0r.nl/bootcamp Sioux, March 31, 2011 Agenda Part 1: JavaScript the Language Short break Part 2: JavaScript in the Browser History May 1995 LiveScript is written by Brendan

More information

Frontend II: Javascript and DOM Programming. Wednesday, January 7, 15

Frontend II: Javascript and DOM Programming. Wednesday, January 7, 15 6.148 Frontend II: Javascript and DOM Programming Let s talk about Javascript :) Why Javascript? Designed in ten days in December 1995! How are they similar? Javascript is to Java as hamster is to ham

More information

JavaScript. jquery and other frameworks. Jacobo Aragunde Pérez. blogs.igalia.com/jaragunde

JavaScript. jquery and other frameworks. Jacobo Aragunde Pérez. blogs.igalia.com/jaragunde JavaScript static void _f_do_barnacle_install_properties(gobjectclass *gobject_class) { GParamSpec *pspec; /* Party code attribute */ pspec = g_param_spec_uint64 (F_DO_BARNACLE_CODE, jquery and other frameworks

More information

Advanced Development with the ArcGIS API for JavaScript. Jeremy Bartley, Kelly Hutchins, Derek Swingley

Advanced Development with the ArcGIS API for JavaScript. Jeremy Bartley, Kelly Hutchins, Derek Swingley Advanced Development with the ArcGIS API for JavaScript Jeremy Bartley, Kelly Hutchins, Derek Swingley Agenda FeatureLayer esri.request and Identity Manager OO JS Building your first Dijit Popups Working

More information

ES6 in Practice - The Complete Developer s Guide

ES6 in Practice - The Complete Developer s Guide ES6 in Practice - The Complete Developer s Guide Zsolt Nagy This work is licensed under a Creative Commons Attribution-NonCommercial3.0 3.0 Unported License Contents Introduction.............................

More information

END-TO-END JAVASCRIPT WEB APPS

END-TO-END JAVASCRIPT WEB APPS END-TO-END JAVASCRIPT WEB APPS HTML5, NODE.JS AND MONGODB CADEC 2013 by Peter Larsson JAVASCRIPT IS NOT EVIL TECH. INDEX, JAN 2013 Dice Job Posts Google 20,000 2,400,000,000 15,000 1,800,000,000 10,000

More information

Networking & The Web. HCID 520 User Interface Software & Technology

Networking & The Web. HCID 520 User Interface Software & Technology Networking & The Web HCID 520 User Interface Software & Technology Uniform Resource Locator (URL) http://info.cern.ch:80/ 1991 HTTP v0.9 Uniform Resource Locator (URL) http://info.cern.ch:80/ Scheme/Protocol

More information

JavaScript: Introduction, Types

JavaScript: Introduction, Types JavaScript: Introduction, Types Computer Science and Engineering College of Engineering The Ohio State University Lecture 19 History Developed by Netscape "LiveScript", then renamed "JavaScript" Nothing

More information

3/5/2012. Rich Internet Applications. Presentation layer. Presentation layer

3/5/2012. Rich Internet Applications. Presentation layer. Presentation layer 7. Single-page application architecture Presentation layer In a traditional web application, presentation layer is within web tier, renders output to client tier (browser) 7. Single-page application architecture

More information

INF5750. Introduction to JavaScript and Node.js

INF5750. Introduction to JavaScript and Node.js INF5750 Introduction to JavaScript and Node.js Outline Introduction to JavaScript Language basics Introduction to Node.js Tips and tools for working with JS and Node.js What is JavaScript? Built as scripting

More information

TypeScript. Language Specification. Version 1.8

TypeScript. Language Specification. Version 1.8 TypeScript Language Specification Version 1.8 January, 2016 Microsoft is making this Specification available under the Open Web Foundation Final Specification Agreement Version 1.0 ("OWF 1.0") as of October

More information

JavaScript. History. Adding JavaScript to a page. CS144: Web Applications

JavaScript. History. Adding JavaScript to a page. CS144: Web Applications JavaScript Started as a simple script in a Web page that is interpreted and run by the browser Supported by most modern browsers Allows dynamic update of a web page More generally, allows running an arbitrary

More information

Before proceeding with this tutorial, you should have a basic understanding of JavaScript.

Before proceeding with this tutorial, you should have a basic understanding of JavaScript. i About the Tutorial is a JavaScript transpiler which transpiles new features into old standard. With this, the features can be run on both old and new browsers, hassle-free. Babeljs comes with a wide

More information

MongoDB. Robert M. Vunabandi

MongoDB. Robert M. Vunabandi MongoDB Robert M. Vunabandi What is MongoDB? One of the most popular NoSQL DBMS Why use MongoDB? Very efficient when we need to write a lot to the database. Schemas are very prone to changes (we ll get

More information

INF Introduction. Knut Staring gmail}

INF Introduction. Knut Staring gmail} INF5750 - Introduction Knut Staring knutst@{ifi, gmail} Lecture 1 - overview Background to the course Content and expectations Assignments and group work Maven build system Revision control system Object-Relational

More information

Networking & The Web. HCID 520 User Interface Software & Technology

Networking & The Web. HCID 520 User Interface Software & Technology Networking & The HCID 520 User Interface Software & Technology Uniform Resource Locator (URL) http://info.cern.ch:80/ 1991 HTTP v0.9 Uniform Resource Locator (URL) http://info.cern.ch:80/ Scheme/Protocol

More information