SlideShare a Scribd company logo
Loops, Arrays, Functions,
Strings, Objects, Variables
Scope & Events
Loops, Arrays, Functions, Objects...
Table of Contents
Loops in JavaScript
while, do-while, for, for-in
Arrays in JavaScript
Declaring and Creating Arrays
Accessing and Processing Array Elements
Strings in JavaScript
Processing, Trimming, Concatenating
Loops
Types of Loops in JS
Types of loops in JS
while(…) loop
do { … } while (…) loop
for loop
for-in loop
Infinite loops – a loop that never ends
Nested loops – a composition of loops
How To Use While Loop?
The simplest and most frequently used loop!
The repeat condition (loop condition)
The condition is evaluated to true or false
0, "", null are evaluated as false
while (condition) {
statements;
}
Using Do-While Loop
Another classical loop structure is:
The block of statements is repeated
While the boolean loop condition holds
The loop is executed at least once
do {
statements;
} while (condition);
For Loop – Definition
Initialization – executed once, just before the loop is entered
Test – checked before each iteration of the loop (loop condition)
Update – executed at each iteration after the loop body
Body – the code that will be executed at each iteration
for (var number = 0; number < 10; number++) {
// Can use number here
}
// number is still usable here
Using break Operator
The break operator exits the inner-most loop
The break operator is used to stop the loop’s iteration.
It is not necessary to use it
While (condition){
if(another condition){
break;
}
}
for-in Loop
Iterating over the Properties of an Object
The objects has some properties, to in order to access
them and iterate them you can use for-in loop.
The for-in loop can be replaced with for loop, but both
have odds pros and cons.
What is for-in Loop?
for-in loop iterates over the properties of an object
For arrays / strings iterates over their indices (0…length-1)
For any other object, for-in iterates over its properties
Iterating over the elements of an array / string:
var arr = [10, 20, 30, 40, 50];
for (var index in arr) { console.log(arr[index]) }
// 10, 20, 30, 40, 50
var str = "welcome";
for (var index in str) { console.log(str[index]) }
// w, e, l, c, o, m, e
For-in Loop
Iterating over the properties of an object:
Typical mistake is to use the
key instead of the value:
var obj = { name: 'Steve', age: 23, location: 'Sofia' };
for (var key in obj) { console.log(obj[key]); }
// Steve, 23 , Sofia
var obj = { name: 'Steve', age: 23, location: 'Sofia' };
for (var key in obj) { console.log(key); }
// name, age, location
var arr = [10, 20, 30, 40, 50];
for (var i in arr) { console.log(i); }
// 0, 1, 2, 3, 4
for-in loop - Live Demo
Arrays
What are Arrays?
An array is an ordered sequence of elements
The order of the elements is fixed
Can get the current length (Array.length)
In JS arrays can change their size at runtime (add / delete)
Creating Arrays
Creating Arrays in JavaScript
// Array holding integers
var numbers = [1, 2, 3, 4, 5];
// Array holding strings
var weekDays = ['Monday', 'Tuesday', 'Wednesday',
'Thursday', 'Friday', 'Saturday', 'Sunday'];
// Array of mixed data
var mixedArr = [1, new Date(), 'hello'];
// Array of arrays (matrix)
var matrix = [
['0,0', '0,1', '0,2'],
['1,0', '1,1', '1,2'],
['2,0', '2,1', '2,2']];
Declare and Initialize Arrays
Initializing an array in JavaScript can be done in several ways:
Using new Array(elements):
Using new Array(initialLength):
var arr = new Array(1, 2, 3, 4, 5); // [1, 2, 3, 4, 5]
var arr = new Array(10); // [undefined × 10]
Using new Array():
Using array literal (recommended):
Declare and Initialize Arrays
var arr = new Array(); // []
var arr = [1, 2, 3, 4, 5]; // [1, 2, 3, 4, 5]
Manipulating arrays
Push
Pup
Shift
Unshift
Accessing Array Elements - Live Demo
Read and Modify Elements by Index:
Objects
How to define objects
Shorthand syntax
Objects have properties
Defining object properties
Alternative syntax
Variable property name
Objects have methods
Defining methods
Using methods
Methods are simply callable properties.
Properties can be assigned and accessed dynamically.
Objects, properties and methods
(almost) Everything is an object
Array, Json object, string literal
Primitive values become Objects
Due to type coercion
Using object constructors
Built-in object constructors
Constructor functions
Extending objects
Prototypal inheritance
Summary
Objects
Properties
Methods
Constructors
Extending
Functions
Functions are callable
objects
Javascript scope
Inner scope vs outer scope
Global scope
Global variables can be
used everywhere
In HTML, global scope is
the window object
All global variables belong to the
window object.
More global scope
Global variables:
Defined outside of any function
Properties to the global object
Not declared with “var” operator
Binding of this
Inside a function call,
“this” is bound to the global
object.
Inside a call for with “new”
operator, “this” is bound to
the returned object.
Controlling this binding
Using function methods apply, call, bind.
DOM events
Events can target DOM elements.
Can also be used from event attributes.
Why is the first event listener needed?

More Related Content

What's hot

JPoint 2016 - Валеев Тагир - Странности Stream API
JPoint 2016 - Валеев Тагир - Странности Stream APIJPoint 2016 - Валеев Тагир - Странности Stream API
JPoint 2016 - Валеев Тагир - Странности Stream API
tvaleev
 
Infinum iOS Talks #1 - Swift under the hood: Method Dispatching by Vlaho Poluta
Infinum iOS Talks #1 - Swift under the hood: Method Dispatching by Vlaho PolutaInfinum iOS Talks #1 - Swift under the hood: Method Dispatching by Vlaho Poluta
Infinum iOS Talks #1 - Swift under the hood: Method Dispatching by Vlaho Poluta
Infinum
 
EcmaScript 6 - The future is here
EcmaScript 6 - The future is hereEcmaScript 6 - The future is here
EcmaScript 6 - The future is here
Sebastiano Armeli
 
ES6 in Real Life
ES6 in Real LifeES6 in Real Life
ES6 in Real Life
Domenic Denicola
 
Scala for Java programmers
Scala for Java programmersScala for Java programmers
Scala for Java programmers
輝 子安
 
Pg py-and-squid-pypgday
Pg py-and-squid-pypgdayPg py-and-squid-pypgday
Pg py-and-squid-pypgday
PostgreSQL Experts, Inc.
 
Lightening Talk: Model Cat Can Haz Scope?
Lightening Talk: Model Cat Can Haz Scope?Lightening Talk: Model Cat Can Haz Scope?
Lightening Talk: Model Cat Can Haz Scope?
evenellie
 
Spockを使おう!
Spockを使おう!Spockを使おう!
Spockを使おう!
Takuma Watabiki
 
Turtle Graphics in Groovy
Turtle Graphics in GroovyTurtle Graphics in Groovy
Turtle Graphics in Groovy
Jim Driscoll
 
What's New in ES6 for Web Devs
What's New in ES6 for Web DevsWhat's New in ES6 for Web Devs
What's New in ES6 for Web Devs
Rami Sayar
 
G*におけるソフトウェアテスト・シーズンIII
G*におけるソフトウェアテスト・シーズンIIIG*におけるソフトウェアテスト・シーズンIII
G*におけるソフトウェアテスト・シーズンIII
Takuma Watabiki
 
Down to Stack Traces, up from Heap Dumps
Down to Stack Traces, up from Heap DumpsDown to Stack Traces, up from Heap Dumps
Down to Stack Traces, up from Heap Dumps
Andrei Pangin
 
Clojure: Practical functional approach on JVM
Clojure: Practical functional approach on JVMClojure: Practical functional approach on JVM
Clojure: Practical functional approach on JVM
sunng87
 
From Java to Parellel Clojure - Clojure South 2019
From Java to Parellel Clojure - Clojure South 2019From Java to Parellel Clojure - Clojure South 2019
From Java to Parellel Clojure - Clojure South 2019
Leonardo Borges
 
Pune Clojure Course Outline
Pune Clojure Course OutlinePune Clojure Course Outline
Pune Clojure Course Outline
Baishampayan Ghose
 
Rust Mozlando Tutorial
Rust Mozlando TutorialRust Mozlando Tutorial
Rust Mozlando Tutorial
nikomatsakis
 
Rust concurrency tutorial 2015 12-02
Rust concurrency tutorial 2015 12-02Rust concurrency tutorial 2015 12-02
Rust concurrency tutorial 2015 12-02
nikomatsakis
 
[Let'Swift 2019] 실용적인 함수형 프로그래밍 워크샵
[Let'Swift 2019] 실용적인 함수형 프로그래밍 워크샵[Let'Swift 2019] 실용적인 함수형 프로그래밍 워크샵
[Let'Swift 2019] 실용적인 함수형 프로그래밍 워크샵
Wanbok Choi
 
Rust言語紹介
Rust言語紹介Rust言語紹介
Rust言語紹介
Paweł Rusin
 
Hello, Guava !
Hello, Guava !Hello, Guava !
Hello, Guava !
輝 子安
 

What's hot (20)

JPoint 2016 - Валеев Тагир - Странности Stream API
JPoint 2016 - Валеев Тагир - Странности Stream APIJPoint 2016 - Валеев Тагир - Странности Stream API
JPoint 2016 - Валеев Тагир - Странности Stream API
 
Infinum iOS Talks #1 - Swift under the hood: Method Dispatching by Vlaho Poluta
Infinum iOS Talks #1 - Swift under the hood: Method Dispatching by Vlaho PolutaInfinum iOS Talks #1 - Swift under the hood: Method Dispatching by Vlaho Poluta
Infinum iOS Talks #1 - Swift under the hood: Method Dispatching by Vlaho Poluta
 
EcmaScript 6 - The future is here
EcmaScript 6 - The future is hereEcmaScript 6 - The future is here
EcmaScript 6 - The future is here
 
ES6 in Real Life
ES6 in Real LifeES6 in Real Life
ES6 in Real Life
 
Scala for Java programmers
Scala for Java programmersScala for Java programmers
Scala for Java programmers
 
Pg py-and-squid-pypgday
Pg py-and-squid-pypgdayPg py-and-squid-pypgday
Pg py-and-squid-pypgday
 
Lightening Talk: Model Cat Can Haz Scope?
Lightening Talk: Model Cat Can Haz Scope?Lightening Talk: Model Cat Can Haz Scope?
Lightening Talk: Model Cat Can Haz Scope?
 
Spockを使おう!
Spockを使おう!Spockを使おう!
Spockを使おう!
 
Turtle Graphics in Groovy
Turtle Graphics in GroovyTurtle Graphics in Groovy
Turtle Graphics in Groovy
 
What's New in ES6 for Web Devs
What's New in ES6 for Web DevsWhat's New in ES6 for Web Devs
What's New in ES6 for Web Devs
 
G*におけるソフトウェアテスト・シーズンIII
G*におけるソフトウェアテスト・シーズンIIIG*におけるソフトウェアテスト・シーズンIII
G*におけるソフトウェアテスト・シーズンIII
 
Down to Stack Traces, up from Heap Dumps
Down to Stack Traces, up from Heap DumpsDown to Stack Traces, up from Heap Dumps
Down to Stack Traces, up from Heap Dumps
 
Clojure: Practical functional approach on JVM
Clojure: Practical functional approach on JVMClojure: Practical functional approach on JVM
Clojure: Practical functional approach on JVM
 
From Java to Parellel Clojure - Clojure South 2019
From Java to Parellel Clojure - Clojure South 2019From Java to Parellel Clojure - Clojure South 2019
From Java to Parellel Clojure - Clojure South 2019
 
Pune Clojure Course Outline
Pune Clojure Course OutlinePune Clojure Course Outline
Pune Clojure Course Outline
 
Rust Mozlando Tutorial
Rust Mozlando TutorialRust Mozlando Tutorial
Rust Mozlando Tutorial
 
Rust concurrency tutorial 2015 12-02
Rust concurrency tutorial 2015 12-02Rust concurrency tutorial 2015 12-02
Rust concurrency tutorial 2015 12-02
 
[Let'Swift 2019] 실용적인 함수형 프로그래밍 워크샵
[Let'Swift 2019] 실용적인 함수형 프로그래밍 워크샵[Let'Swift 2019] 실용적인 함수형 프로그래밍 워크샵
[Let'Swift 2019] 실용적인 함수형 프로그래밍 워크샵
 
Rust言語紹介
Rust言語紹介Rust言語紹介
Rust言語紹介
 
Hello, Guava !
Hello, Guava !Hello, Guava !
Hello, Guava !
 

Viewers also liked

FFW Gabrovo PMG - Development Process
FFW Gabrovo PMG - Development ProcessFFW Gabrovo PMG - Development Process
FFW Gabrovo PMG - Development Process
Toni Kolev
 
FFW Gabrovo PMG - JavaScript 1
FFW Gabrovo PMG - JavaScript 1FFW Gabrovo PMG - JavaScript 1
FFW Gabrovo PMG - JavaScript 1
Toni Kolev
 
Brexit
BrexitBrexit
Brexit
rven14
 
FFW Gabrovo PMG - jQuery
FFW Gabrovo PMG - jQueryFFW Gabrovo PMG - jQuery
FFW Gabrovo PMG - jQuery
Toni Kolev
 
FFW Gabrovo PMG - CSS
FFW Gabrovo PMG - CSSFFW Gabrovo PMG - CSS
FFW Gabrovo PMG - CSS
Toni Kolev
 
Brexit
BrexitBrexit
Brexit
rven14
 
FFW Gabrovo PMG - HTML
FFW Gabrovo PMG - HTMLFFW Gabrovo PMG - HTML
FFW Gabrovo PMG - HTML
Toni Kolev
 
FFW Gabrovo PMG - PHP OOP Part 3
FFW Gabrovo PMG - PHP OOP Part 3FFW Gabrovo PMG - PHP OOP Part 3
FFW Gabrovo PMG - PHP OOP Part 3
Toni Kolev
 
Trading Floor - Алексей Марков восхождение
Trading Floor - Алексей Марков восхождение Trading Floor - Алексей Марков восхождение
Trading Floor - Алексей Марков восхождение
rven14
 

Viewers also liked (9)

FFW Gabrovo PMG - Development Process
FFW Gabrovo PMG - Development ProcessFFW Gabrovo PMG - Development Process
FFW Gabrovo PMG - Development Process
 
FFW Gabrovo PMG - JavaScript 1
FFW Gabrovo PMG - JavaScript 1FFW Gabrovo PMG - JavaScript 1
FFW Gabrovo PMG - JavaScript 1
 
Brexit
BrexitBrexit
Brexit
 
FFW Gabrovo PMG - jQuery
FFW Gabrovo PMG - jQueryFFW Gabrovo PMG - jQuery
FFW Gabrovo PMG - jQuery
 
FFW Gabrovo PMG - CSS
FFW Gabrovo PMG - CSSFFW Gabrovo PMG - CSS
FFW Gabrovo PMG - CSS
 
Brexit
BrexitBrexit
Brexit
 
FFW Gabrovo PMG - HTML
FFW Gabrovo PMG - HTMLFFW Gabrovo PMG - HTML
FFW Gabrovo PMG - HTML
 
FFW Gabrovo PMG - PHP OOP Part 3
FFW Gabrovo PMG - PHP OOP Part 3FFW Gabrovo PMG - PHP OOP Part 3
FFW Gabrovo PMG - PHP OOP Part 3
 
Trading Floor - Алексей Марков восхождение
Trading Floor - Алексей Марков восхождение Trading Floor - Алексей Марков восхождение
Trading Floor - Алексей Марков восхождение
 

Similar to FFW Gabrovo PMG - JavaScript 2

ES6 and BEYOND
ES6 and BEYONDES6 and BEYOND
ES6 and BEYOND
Brian Patterson
 
Core java concepts
Core    java  conceptsCore    java  concepts
Core java concepts
Chikugehlot
 
Unit-2.Arrays and Strings.pptx.................
Unit-2.Arrays and Strings.pptx.................Unit-2.Arrays and Strings.pptx.................
Unit-2.Arrays and Strings.pptx.................
suchitrapoojari984
 
An introduction to javascript
An introduction to javascriptAn introduction to javascript
An introduction to javascript
MD Sayem Ahmed
 
(How) can we benefit from adopting scala?
(How) can we benefit from adopting scala?(How) can we benefit from adopting scala?
(How) can we benefit from adopting scala?
Tomasz Wrobel
 
A Brief Intro to Scala
A Brief Intro to ScalaA Brief Intro to Scala
A Brief Intro to Scala
Tim Underwood
 
CAP615-Unit1.pptx
CAP615-Unit1.pptxCAP615-Unit1.pptx
CAP615-Unit1.pptx
SatyajeetGaur3
 
Scala in Places API
Scala in Places APIScala in Places API
Scala in Places API
Łukasz Bałamut
 
Underscore.js
Underscore.jsUnderscore.js
Underscore.js
timourian
 
Introduction to Scala
Introduction to ScalaIntroduction to Scala
Introduction to Scala
Raúl Raja Martínez
 
Scala - just good for Java shops?
Scala - just good for Java shops?Scala - just good for Java shops?
Scala - just good for Java shops?
Sarah Mount
 
Basic iOS Training with SWIFT - Part 2
Basic iOS Training with SWIFT - Part 2Basic iOS Training with SWIFT - Part 2
Basic iOS Training with SWIFT - Part 2
Manoj Ellappan
 
8558537werr.pptx
8558537werr.pptx8558537werr.pptx
8558537werr.pptx
ssuser8a9aac
 
Lecture 6
Lecture 6Lecture 6
Intro to scala
Intro to scalaIntro to scala
Intro to scala
Joe Zulli
 
Core Java Concepts
Core Java ConceptsCore Java Concepts
Core Java Concepts
mdfkhan625
 
Scala for curious
Scala for curiousScala for curious
Scala for curious
Tim (dev-tim) Zadorozhniy
 
CollectionConsiderationsCollectionConsiderations.ppt
CollectionConsiderationsCollectionConsiderations.pptCollectionConsiderationsCollectionConsiderations.ppt
CollectionConsiderationsCollectionConsiderations.ppt
tahircs1
 
Coding in Style
Coding in StyleCoding in Style
Coding in Style
scalaconfjp
 
M251_Meeting 2_updated_2.pdf(M251_Meeting 2_updated_2.pdf)
M251_Meeting 2_updated_2.pdf(M251_Meeting 2_updated_2.pdf)M251_Meeting 2_updated_2.pdf(M251_Meeting 2_updated_2.pdf)
M251_Meeting 2_updated_2.pdf(M251_Meeting 2_updated_2.pdf)
hossamghareb681
 

Similar to FFW Gabrovo PMG - JavaScript 2 (20)

ES6 and BEYOND
ES6 and BEYONDES6 and BEYOND
ES6 and BEYOND
 
Core java concepts
Core    java  conceptsCore    java  concepts
Core java concepts
 
Unit-2.Arrays and Strings.pptx.................
Unit-2.Arrays and Strings.pptx.................Unit-2.Arrays and Strings.pptx.................
Unit-2.Arrays and Strings.pptx.................
 
An introduction to javascript
An introduction to javascriptAn introduction to javascript
An introduction to javascript
 
(How) can we benefit from adopting scala?
(How) can we benefit from adopting scala?(How) can we benefit from adopting scala?
(How) can we benefit from adopting scala?
 
A Brief Intro to Scala
A Brief Intro to ScalaA Brief Intro to Scala
A Brief Intro to Scala
 
CAP615-Unit1.pptx
CAP615-Unit1.pptxCAP615-Unit1.pptx
CAP615-Unit1.pptx
 
Scala in Places API
Scala in Places APIScala in Places API
Scala in Places API
 
Underscore.js
Underscore.jsUnderscore.js
Underscore.js
 
Introduction to Scala
Introduction to ScalaIntroduction to Scala
Introduction to Scala
 
Scala - just good for Java shops?
Scala - just good for Java shops?Scala - just good for Java shops?
Scala - just good for Java shops?
 
Basic iOS Training with SWIFT - Part 2
Basic iOS Training with SWIFT - Part 2Basic iOS Training with SWIFT - Part 2
Basic iOS Training with SWIFT - Part 2
 
8558537werr.pptx
8558537werr.pptx8558537werr.pptx
8558537werr.pptx
 
Lecture 6
Lecture 6Lecture 6
Lecture 6
 
Intro to scala
Intro to scalaIntro to scala
Intro to scala
 
Core Java Concepts
Core Java ConceptsCore Java Concepts
Core Java Concepts
 
Scala for curious
Scala for curiousScala for curious
Scala for curious
 
CollectionConsiderationsCollectionConsiderations.ppt
CollectionConsiderationsCollectionConsiderations.pptCollectionConsiderationsCollectionConsiderations.ppt
CollectionConsiderationsCollectionConsiderations.ppt
 
Coding in Style
Coding in StyleCoding in Style
Coding in Style
 
M251_Meeting 2_updated_2.pdf(M251_Meeting 2_updated_2.pdf)
M251_Meeting 2_updated_2.pdf(M251_Meeting 2_updated_2.pdf)M251_Meeting 2_updated_2.pdf(M251_Meeting 2_updated_2.pdf)
M251_Meeting 2_updated_2.pdf(M251_Meeting 2_updated_2.pdf)
 

Recently uploaded

怎么办理(umiami毕业证书)美国迈阿密大学毕业证文凭证书实拍图原版一模一样
怎么办理(umiami毕业证书)美国迈阿密大学毕业证文凭证书实拍图原版一模一样怎么办理(umiami毕业证书)美国迈阿密大学毕业证文凭证书实拍图原版一模一样
怎么办理(umiami毕业证书)美国迈阿密大学毕业证文凭证书实拍图原版一模一样
rtunex8r
 
快速办理(Vic毕业证书)惠灵顿维多利亚大学毕业证完成信一模一样
快速办理(Vic毕业证书)惠灵顿维多利亚大学毕业证完成信一模一样快速办理(Vic毕业证书)惠灵顿维多利亚大学毕业证完成信一模一样
快速办理(Vic毕业证书)惠灵顿维多利亚大学毕业证完成信一模一样
3a0sd7z3
 
一比一原版(USYD毕业证)悉尼大学毕业证如何办理
一比一原版(USYD毕业证)悉尼大学毕业证如何办理一比一原版(USYD毕业证)悉尼大学毕业证如何办理
一比一原版(USYD毕业证)悉尼大学毕业证如何办理
k4ncd0z
 
Securing BGP: Operational Strategies and Best Practices for Network Defenders...
Securing BGP: Operational Strategies and Best Practices for Network Defenders...Securing BGP: Operational Strategies and Best Practices for Network Defenders...
Securing BGP: Operational Strategies and Best Practices for Network Defenders...
APNIC
 
Honeypots Unveiled: Proactive Defense Tactics for Cyber Security, Phoenix Sum...
Honeypots Unveiled: Proactive Defense Tactics for Cyber Security, Phoenix Sum...Honeypots Unveiled: Proactive Defense Tactics for Cyber Security, Phoenix Sum...
Honeypots Unveiled: Proactive Defense Tactics for Cyber Security, Phoenix Sum...
APNIC
 
办理新西兰奥克兰大学毕业证学位证书范本原版一模一样
办理新西兰奥克兰大学毕业证学位证书范本原版一模一样办理新西兰奥克兰大学毕业证学位证书范本原版一模一样
办理新西兰奥克兰大学毕业证学位证书范本原版一模一样
xjq03c34
 
Discover the benefits of outsourcing SEO to India
Discover the benefits of outsourcing SEO to IndiaDiscover the benefits of outsourcing SEO to India
Discover the benefits of outsourcing SEO to India
davidjhones387
 
Should Repositories Participate in the Fediverse?
Should Repositories Participate in the Fediverse?Should Repositories Participate in the Fediverse?
Should Repositories Participate in the Fediverse?
Paul Walk
 
HijackLoader Evolution: Interactive Process Hollowing
HijackLoader Evolution: Interactive Process HollowingHijackLoader Evolution: Interactive Process Hollowing
HijackLoader Evolution: Interactive Process Hollowing
Donato Onofri
 
快速办理(新加坡SMU毕业证书)新加坡管理大学毕业证文凭证书一模一样
快速办理(新加坡SMU毕业证书)新加坡管理大学毕业证文凭证书一模一样快速办理(新加坡SMU毕业证书)新加坡管理大学毕业证文凭证书一模一样
快速办理(新加坡SMU毕业证书)新加坡管理大学毕业证文凭证书一模一样
3a0sd7z3
 
Bengaluru Dreamin' 24 - Personal Branding
Bengaluru Dreamin' 24 - Personal BrandingBengaluru Dreamin' 24 - Personal Branding
Bengaluru Dreamin' 24 - Personal Branding
Tarandeep Singh
 
一比一原版新西兰林肯大学毕业证(Lincoln毕业证书)学历如何办理
一比一原版新西兰林肯大学毕业证(Lincoln毕业证书)学历如何办理一比一原版新西兰林肯大学毕业证(Lincoln毕业证书)学历如何办理
一比一原版新西兰林肯大学毕业证(Lincoln毕业证书)学历如何办理
thezot
 

Recently uploaded (12)

怎么办理(umiami毕业证书)美国迈阿密大学毕业证文凭证书实拍图原版一模一样
怎么办理(umiami毕业证书)美国迈阿密大学毕业证文凭证书实拍图原版一模一样怎么办理(umiami毕业证书)美国迈阿密大学毕业证文凭证书实拍图原版一模一样
怎么办理(umiami毕业证书)美国迈阿密大学毕业证文凭证书实拍图原版一模一样
 
快速办理(Vic毕业证书)惠灵顿维多利亚大学毕业证完成信一模一样
快速办理(Vic毕业证书)惠灵顿维多利亚大学毕业证完成信一模一样快速办理(Vic毕业证书)惠灵顿维多利亚大学毕业证完成信一模一样
快速办理(Vic毕业证书)惠灵顿维多利亚大学毕业证完成信一模一样
 
一比一原版(USYD毕业证)悉尼大学毕业证如何办理
一比一原版(USYD毕业证)悉尼大学毕业证如何办理一比一原版(USYD毕业证)悉尼大学毕业证如何办理
一比一原版(USYD毕业证)悉尼大学毕业证如何办理
 
Securing BGP: Operational Strategies and Best Practices for Network Defenders...
Securing BGP: Operational Strategies and Best Practices for Network Defenders...Securing BGP: Operational Strategies and Best Practices for Network Defenders...
Securing BGP: Operational Strategies and Best Practices for Network Defenders...
 
Honeypots Unveiled: Proactive Defense Tactics for Cyber Security, Phoenix Sum...
Honeypots Unveiled: Proactive Defense Tactics for Cyber Security, Phoenix Sum...Honeypots Unveiled: Proactive Defense Tactics for Cyber Security, Phoenix Sum...
Honeypots Unveiled: Proactive Defense Tactics for Cyber Security, Phoenix Sum...
 
办理新西兰奥克兰大学毕业证学位证书范本原版一模一样
办理新西兰奥克兰大学毕业证学位证书范本原版一模一样办理新西兰奥克兰大学毕业证学位证书范本原版一模一样
办理新西兰奥克兰大学毕业证学位证书范本原版一模一样
 
Discover the benefits of outsourcing SEO to India
Discover the benefits of outsourcing SEO to IndiaDiscover the benefits of outsourcing SEO to India
Discover the benefits of outsourcing SEO to India
 
Should Repositories Participate in the Fediverse?
Should Repositories Participate in the Fediverse?Should Repositories Participate in the Fediverse?
Should Repositories Participate in the Fediverse?
 
HijackLoader Evolution: Interactive Process Hollowing
HijackLoader Evolution: Interactive Process HollowingHijackLoader Evolution: Interactive Process Hollowing
HijackLoader Evolution: Interactive Process Hollowing
 
快速办理(新加坡SMU毕业证书)新加坡管理大学毕业证文凭证书一模一样
快速办理(新加坡SMU毕业证书)新加坡管理大学毕业证文凭证书一模一样快速办理(新加坡SMU毕业证书)新加坡管理大学毕业证文凭证书一模一样
快速办理(新加坡SMU毕业证书)新加坡管理大学毕业证文凭证书一模一样
 
Bengaluru Dreamin' 24 - Personal Branding
Bengaluru Dreamin' 24 - Personal BrandingBengaluru Dreamin' 24 - Personal Branding
Bengaluru Dreamin' 24 - Personal Branding
 
一比一原版新西兰林肯大学毕业证(Lincoln毕业证书)学历如何办理
一比一原版新西兰林肯大学毕业证(Lincoln毕业证书)学历如何办理一比一原版新西兰林肯大学毕业证(Lincoln毕业证书)学历如何办理
一比一原版新西兰林肯大学毕业证(Lincoln毕业证书)学历如何办理
 

FFW Gabrovo PMG - JavaScript 2

  • 1. Loops, Arrays, Functions, Strings, Objects, Variables Scope & Events Loops, Arrays, Functions, Objects...
  • 2. Table of Contents Loops in JavaScript while, do-while, for, for-in Arrays in JavaScript Declaring and Creating Arrays Accessing and Processing Array Elements Strings in JavaScript Processing, Trimming, Concatenating
  • 4. Types of Loops in JS Types of loops in JS while(…) loop do { … } while (…) loop for loop for-in loop Infinite loops – a loop that never ends Nested loops – a composition of loops
  • 5. How To Use While Loop? The simplest and most frequently used loop! The repeat condition (loop condition) The condition is evaluated to true or false 0, "", null are evaluated as false while (condition) { statements; }
  • 6. Using Do-While Loop Another classical loop structure is: The block of statements is repeated While the boolean loop condition holds The loop is executed at least once do { statements; } while (condition);
  • 7. For Loop – Definition Initialization – executed once, just before the loop is entered Test – checked before each iteration of the loop (loop condition) Update – executed at each iteration after the loop body Body – the code that will be executed at each iteration for (var number = 0; number < 10; number++) { // Can use number here } // number is still usable here
  • 8. Using break Operator The break operator exits the inner-most loop The break operator is used to stop the loop’s iteration. It is not necessary to use it While (condition){ if(another condition){ break; } }
  • 9. for-in Loop Iterating over the Properties of an Object The objects has some properties, to in order to access them and iterate them you can use for-in loop. The for-in loop can be replaced with for loop, but both have odds pros and cons.
  • 10. What is for-in Loop? for-in loop iterates over the properties of an object For arrays / strings iterates over their indices (0…length-1) For any other object, for-in iterates over its properties Iterating over the elements of an array / string: var arr = [10, 20, 30, 40, 50]; for (var index in arr) { console.log(arr[index]) } // 10, 20, 30, 40, 50 var str = "welcome"; for (var index in str) { console.log(str[index]) } // w, e, l, c, o, m, e
  • 11. For-in Loop Iterating over the properties of an object: Typical mistake is to use the key instead of the value: var obj = { name: 'Steve', age: 23, location: 'Sofia' }; for (var key in obj) { console.log(obj[key]); } // Steve, 23 , Sofia var obj = { name: 'Steve', age: 23, location: 'Sofia' }; for (var key in obj) { console.log(key); } // name, age, location var arr = [10, 20, 30, 40, 50]; for (var i in arr) { console.log(i); } // 0, 1, 2, 3, 4
  • 12. for-in loop - Live Demo
  • 14. What are Arrays? An array is an ordered sequence of elements The order of the elements is fixed Can get the current length (Array.length) In JS arrays can change their size at runtime (add / delete)
  • 16. Creating Arrays in JavaScript // Array holding integers var numbers = [1, 2, 3, 4, 5]; // Array holding strings var weekDays = ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday']; // Array of mixed data var mixedArr = [1, new Date(), 'hello']; // Array of arrays (matrix) var matrix = [ ['0,0', '0,1', '0,2'], ['1,0', '1,1', '1,2'], ['2,0', '2,1', '2,2']];
  • 17. Declare and Initialize Arrays Initializing an array in JavaScript can be done in several ways: Using new Array(elements): Using new Array(initialLength): var arr = new Array(1, 2, 3, 4, 5); // [1, 2, 3, 4, 5] var arr = new Array(10); // [undefined × 10]
  • 18. Using new Array(): Using array literal (recommended): Declare and Initialize Arrays var arr = new Array(); // [] var arr = [1, 2, 3, 4, 5]; // [1, 2, 3, 4, 5]
  • 20. Accessing Array Elements - Live Demo Read and Modify Elements by Index:
  • 21. Objects How to define objects Shorthand syntax
  • 22. Objects have properties Defining object properties Alternative syntax Variable property name
  • 23. Objects have methods Defining methods Using methods
  • 24. Methods are simply callable properties. Properties can be assigned and accessed dynamically. Objects, properties and methods
  • 25. (almost) Everything is an object Array, Json object, string literal Primitive values become Objects Due to type coercion
  • 26. Using object constructors Built-in object constructors Constructor functions
  • 31. Inner scope vs outer scope
  • 32. Global scope Global variables can be used everywhere In HTML, global scope is the window object All global variables belong to the window object.
  • 33. More global scope Global variables: Defined outside of any function Properties to the global object Not declared with “var” operator
  • 34. Binding of this Inside a function call, “this” is bound to the global object. Inside a call for with “new” operator, “this” is bound to the returned object.
  • 35. Controlling this binding Using function methods apply, call, bind.
  • 36. DOM events Events can target DOM elements. Can also be used from event attributes. Why is the first event listener needed?