Top Banner
Introduction to JavaScript Past, Present and Future Nikolay Kostov Telerik Software Academy academy.telerik.com Team Lead, Senior Developer and Trainer http://Nikolay.IT
44

Past, Present and Future Nikolay Kostov Telerik Software Academy academy.telerik.com Team Lead, Senior Developer and Trainer .

Jan 12, 2016

Download

Documents

Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Past, Present and Future Nikolay Kostov Telerik Software Academy academy.telerik.com Team Lead, Senior Developer and Trainer .

Introduction to JavaScriptPast, Present and Future

Nikolay Kostov

Telerik Software Academyacademy.telerik.com

Team Lead, SeniorDeveloper and Trainerhttp://Nikolay.IT

Page 2: Past, Present and Future Nikolay Kostov Telerik Software Academy academy.telerik.com Team Lead, Senior Developer and Trainer .

Table of Contents

JavaScript Overview History Features Usage Present and Future Running JavaScript in the Browser

Page 3: Past, Present and Future Nikolay Kostov Telerik Software Academy academy.telerik.com Team Lead, Senior Developer and Trainer .

JavaScript Overview

Page 4: Past, Present and Future Nikolay Kostov Telerik Software Academy academy.telerik.com Team Lead, Senior Developer and Trainer .

JavaScript Overview

JavaScript is an interpreted computer programming language Runs mostly in a web browser

Allows user interaction

JavaScript is formalized in ECMAScript language standard

Page 5: Past, Present and Future Nikolay Kostov Telerik Software Academy academy.telerik.com Team Lead, Senior Developer and Trainer .

FeaturesWhy JavaScript is so good!

Page 6: Past, Present and Future Nikolay Kostov Telerik Software Academy academy.telerik.com Team Lead, Senior Developer and Trainer .

Features DOM and UI manipulation Platform independent / works everywhere!

Imperative and structured if-else, for, while, …

Scoping

Expressions and statements

Dynamic Typeless

Page 7: Past, Present and Future Nikolay Kostov Telerik Software Academy academy.telerik.com Team Lead, Senior Developer and Trainer .

Features Functional Prototype-based

Class-like structures and inheritance

Functions as objects

Functions as methods

Other Run-time environment

Regular expressions

Lightweight

Page 8: Past, Present and Future Nikolay Kostov Telerik Software Academy academy.telerik.com Team Lead, Senior Developer and Trainer .

History of JavaScriptHow has JS risen to power?

Page 9: Past, Present and Future Nikolay Kostov Telerik Software Academy academy.telerik.com Team Lead, Senior Developer and Trainer .

History of JavaScript JavaScript was originally developed for Netscape at the beginning of the Browser wars

Shipped with Netscape Navigator 2.0, 1995

Developed as Mocha, later known as LiveScript

Microsoft adopted JavaScript in their browser (IE 3.0) in August 1996

MS JS was called JScript and was promoted with the umbrella term DHTML

JS became official as ECMAScript

Page 10: Past, Present and Future Nikolay Kostov Telerik Software Academy academy.telerik.com Team Lead, Senior Developer and Trainer .

History of JavaScript (2)

AJAX came into play Content is loaded in the background

with JS

Open source libraries jQuery

Prototype

JavaScript became popular in 2009 ECMAScript 5

Page 11: Past, Present and Future Nikolay Kostov Telerik Software Academy academy.telerik.com Team Lead, Senior Developer and Trainer .

Present and futureWhere are we going?

Page 12: Past, Present and Future Nikolay Kostov Telerik Software Academy academy.telerik.com Team Lead, Senior Developer and Trainer .

Present AJAX content loading HTML5 API

JS to control user media

RIA applications

Server-side NodeJS

Web Sockets Fast communication

Page 13: Past, Present and Future Nikolay Kostov Telerik Software Academy academy.telerik.com Team Lead, Senior Developer and Trainer .

Future Most used programming language Used absolutely everywhere And on every layer of development

Data layer

Server-side layer

Clients on Web

Mobile

Desktop

Page 14: Past, Present and Future Nikolay Kostov Telerik Software Academy academy.telerik.com Team Lead, Senior Developer and Trainer .

UsageNot only web!

Page 15: Past, Present and Future Nikolay Kostov Telerik Software Academy academy.telerik.com Team Lead, Senior Developer and Trainer .

Usage Architecture

MVVM, MVC and MVP

Ready-to-use libraries

Web UI

DOM manipulation

Single page applications

Page 16: Past, Present and Future Nikolay Kostov Telerik Software Academy academy.telerik.com Team Lead, Senior Developer and Trainer .

Usage Mobile

Cross-platform hybrid applications Cordova, Titanium, Firefox OS

Desktop Windows 8 JS

Server-side NodeJS

Database MongoDB

Page 17: Past, Present and Future Nikolay Kostov Telerik Software Academy academy.telerik.com Team Lead, Senior Developer and Trainer .

Running JavaScript in the Browser

Page 18: Past, Present and Future Nikolay Kostov Telerik Software Academy academy.telerik.com Team Lead, Senior Developer and Trainer .

Using JavaScript Code The JavaScript code can be placed in: <script> tag in the head <script> tag in the body

External files, linked via <script> tag the head

Files usually have .js extension

Highly recommended

The .js files get cached by the browser

18

<script src="scripts.js" type="text/javscript"><!– code placed here will not be executed! --></script>

Page 19: Past, Present and Future Nikolay Kostov Telerik Software Academy academy.telerik.com Team Lead, Senior Developer and Trainer .

JavaScript – When is Executed?

JavaScript code is executed during the page loading or when the browser fires an event All statements are executed at page

loading Some statements just define

functions that can be called later Function calls or code can be attached as "event handlers" via tag attributes Executed when the event is fired by

the browser19

<img src="logo.gif" onclick="alert('clicked!')" />

Page 20: Past, Present and Future Nikolay Kostov Telerik Software Academy academy.telerik.com Team Lead, Senior Developer and Trainer .

<html><head><script type="text/javascript"> function test (message) { alert(message); }</script></head>

<body> <img src="logo.gif" onclick="test('clicked!')" /></body></html>

Calling a JavaScript Function from Event

Handler – Example

20

Page 21: Past, Present and Future Nikolay Kostov Telerik Software Academy academy.telerik.com Team Lead, Senior Developer and Trainer .

Event HandlersLive Demo

Page 22: Past, Present and Future Nikolay Kostov Telerik Software Academy academy.telerik.com Team Lead, Senior Developer and Trainer .

Using External Script Files

Using external script files:

External JavaScript file:

22

<html><head> <script src="sample.js" type="text/javascript"> </script></head><body> <button onclick="sample()" value="Call JavaScript function from sample.js" /></body></html>

function sample() { alert('Hello from sample.js!')}

external-JavaScript.html

sample.js

The <script> tag is always empty.

Page 23: Past, Present and Future Nikolay Kostov Telerik Software Academy academy.telerik.com Team Lead, Senior Developer and Trainer .

External JavaScript Files

Live Demo

Page 24: Past, Present and Future Nikolay Kostov Telerik Software Academy academy.telerik.com Team Lead, Senior Developer and Trainer .

The JavaScript

Syntax

Page 25: Past, Present and Future Nikolay Kostov Telerik Software Academy academy.telerik.com Team Lead, Senior Developer and Trainer .

JavaScript Syntax JavaScript is a C-like programming language It gets its syntax from C, and maybe

Java Operators (+, *, =, !=, &&, ++, …) Variables (typeless) Conditional statements (if, else) Loops (for, while) Arrays (my_array[]) and associative

arrays (my_hash['key']) Functions (can return value) Function variables

25

Page 26: Past, Present and Future Nikolay Kostov Telerik Software Academy academy.telerik.com Team Lead, Senior Developer and Trainer .

Standard Popup Boxes Alert box with text and [OK] button

Just a message shown in a dialog box:

Confirmation box Contains text, [OK] button and

[Cancel] button:

Prompt box Contains text, input field with

default value:

26

alert("Some text here");

confirm("Are you sure?");

prompt ("enter amount", 10);

Page 27: Past, Present and Future Nikolay Kostov Telerik Software Academy academy.telerik.com Team Lead, Senior Developer and Trainer .

Popup BoxesLive Demo

27

Page 28: Past, Present and Future Nikolay Kostov Telerik Software Academy academy.telerik.com Team Lead, Senior Developer and Trainer .

The Built-In Browser Objects

Page 29: Past, Present and Future Nikolay Kostov Telerik Software Academy academy.telerik.com Team Lead, Senior Developer and Trainer .

Built-in Browser Objects

The browser provides some read-only data via: window

The top node of the DOM tree Represents the browser's window

document holds information the current loaded

document screen

Holds the user’s display properties browser

Holds information about the browser

29

Page 30: Past, Present and Future Nikolay Kostov Telerik Software Academy academy.telerik.com Team Lead, Senior Developer and Trainer .

DOM Hierarchy – Example

30

window

navigator

screen document

history location

form

button

form

form

Page 31: Past, Present and Future Nikolay Kostov Telerik Software Academy academy.telerik.com Team Lead, Senior Developer and Trainer .

Opening New Window – Example

window.open()

31

var newWindow = window.open("", "sampleWindow", "width=300, height=100, menubar=yes, status=yes, resizable=yes");

newWindow.document.write( "<html><head><title> Sample Title</title> </head><body><h1>Sample Text</h1></body>");newWindow.status = "Hello folks";

Page 32: Past, Present and Future Nikolay Kostov Telerik Software Academy academy.telerik.com Team Lead, Senior Developer and Trainer .

The Navigator Object

32

alert(window.navigator.userAgent);

The navigator in the browser

window

The userAgent (browser

ID)

The browser window

Page 33: Past, Present and Future Nikolay Kostov Telerik Software Academy academy.telerik.com Team Lead, Senior Developer and Trainer .

The Screen Object The screen object contains information about the display

33

window.moveTo(0, 0);x = screen.availWidth;y = screen.availHeight;window.resizeTo(x, y);

Page 34: Past, Present and Future Nikolay Kostov Telerik Software Academy academy.telerik.com Team Lead, Senior Developer and Trainer .

Document and Location document object

Provides some built-in arrays of specific objects on the currently loaded Web page

document.location Used to access the currently open

URL or redirect the browser

34

document.links[0].href = "yahoo.com";document.write( "This is some <b>bold text</b>");

document.location = "http://www.yahoo.com/";

Page 35: Past, Present and Future Nikolay Kostov Telerik Software Academy academy.telerik.com Team Lead, Senior Developer and Trainer .

Built-In Browser Objects

Live Demo

35

Page 36: Past, Present and Future Nikolay Kostov Telerik Software Academy academy.telerik.com Team Lead, Senior Developer and Trainer .

Other JavaScript Objects

Page 37: Past, Present and Future Nikolay Kostov Telerik Software Academy academy.telerik.com Team Lead, Senior Developer and Trainer .

The Math Object The Math object provides some mathematical functions

37

for (i=1; i<=20; i++) { var x = Math.random(); x = 10*x + 1; x = Math.floor(x); document.write( "Random number (" + i + ") in range " + "1..10 --> " + x + "<br/>");}

Page 38: Past, Present and Future Nikolay Kostov Telerik Software Academy academy.telerik.com Team Lead, Senior Developer and Trainer .

The Date Object The Date object provides date / calendar functions

38

var now = new Date();var result = "It is now " + now;document.getElementById("timeField") .innerText = result;...<p id="timeField"></p>

Page 39: Past, Present and Future Nikolay Kostov Telerik Software Academy academy.telerik.com Team Lead, Senior Developer and Trainer .

Timers: setTimeout() Make something happen (once)

after a fixed delay

39

var timer = setTimeout('bang()', 5000);

clearTimeout(timer);

5 seconds after this statement executes, this function is called

Cancels the timer

Page 40: Past, Present and Future Nikolay Kostov Telerik Software Academy academy.telerik.com Team Lead, Senior Developer and Trainer .

Timers: setInterval() Make something happen

repeatedly at fixed intervals

40

var timer = setInterval('clock()', 1000);

clearInterval(timer);

This function is called continuously

per 1 second.

Stop the timer.

Page 41: Past, Present and Future Nikolay Kostov Telerik Software Academy academy.telerik.com Team Lead, Senior Developer and Trainer .

Timer – Example

41

<script type="text/javascript"> function timerFunc() { var now = new Date(); var hour = now.getHours(); var min = now.getMinutes(); var sec = now.getSeconds(); document.getElementById("clock").value = "" + hour + ":" + min + ":" + sec; }

setInterval('timerFunc()', 1000);</script>

<input type="text" id="clock" />

Page 42: Past, Present and Future Nikolay Kostov Telerik Software Academy academy.telerik.com Team Lead, Senior Developer and Trainer .

Other JavaScript Objects

Live Demo

Page 43: Past, Present and Future Nikolay Kostov Telerik Software Academy academy.telerik.com Team Lead, Senior Developer and Trainer .

форум програмиране, форум уеб дизайнкурсове и уроци по програмиране, уеб дизайн – безплатно

програмиране за деца – безплатни курсове и уроцибезплатен SEO курс - оптимизация за търсачки

уроци по уеб дизайн, HTML, CSS, JavaScript, Photoshop

уроци по програмиране и уеб дизайн за ученициASP.NET MVC курс – HTML, SQL, C#, .NET, ASP.NET MVC

безплатен курс "Разработка на софтуер в cloud среда"

BG Coder - онлайн състезателна система - online judge

курсове и уроци по програмиране, книги – безплатно от Наков

безплатен курс "Качествен програмен код"

алго академия – състезателно програмиране, състезания

ASP.NET курс - уеб програмиране, бази данни, C#, .NET, ASP.NETкурсове и уроци по програмиране – Телерик академия

курс мобилни приложения с iPhone, Android, WP7, PhoneGap

free C# book, безплатна книга C#, книга Java, книга C#Дончо Минков - сайт за програмиранеНиколай Костов - блог за програмиранеC# курс, програмиране, безплатно

?

? ? ??

?? ?

?

?

?

??

?

?

? ?

Questions?

?

Introduction to JavaScript Development

http://academy.telerik.com

Page 44: Past, Present and Future Nikolay Kostov Telerik Software Academy academy.telerik.com Team Lead, Senior Developer and Trainer .

Free Trainings @ Telerik Academy

“C# Programming @ Telerik Academy csharpfundamentals.telerik.com

Telerik Software Academy academy.telerik.com

Telerik Academy @ Facebook facebook.com/TelerikAcademy

Telerik Software Academy Forums forums.academy.telerik.com 44