SlideShare a Scribd company logo
JavaScript
Introduzione
JavaScript è un linguaggio di scripting, il quale
viene interpretato ed eseguito dal client
(browser).
Tutte le istruzioni JavaScript, per poter essere
eseguite, necessitano di essere scritte all’interno
del tag HTML:
<script>…</script>
Il tag <script> va sempre inserito prima della
chiusura di <body>.
Solo rari e specifici casi prevedono l’uso di
<script> all’interno di <head>.
A differenza di altri linguaggi di programmazione
veri e propri, JavaScript non è orientato agli
oggetti, come ObjectiveC o C#, ma si basa sugli
oggetti.
DOM
Document Object Model
html
head
body
link
title
h1
div p
img
em
navigator
window
document
Variabili
Le variabili sono delle “scatole” che possono
contenere un qualsivoglia valore, numerico
testuale o strutturale.
Le variabili, per definizione, possono variare
durante l’esecuzione dell’applicazione.
Le variabili in JavaScript si scrivono anteponendo
al nome della variabile la parola riservata var.
var first = 1;

var second = “Text”;
Non è sempre necessario inizializzare le variabili.
var first;

var second, third, fourth;
Tipi di dato
Le tipologie di dati in JavaScript sono:
• Boolean (valori booleani)
• Number (numeri interi o reali)
• String (caratteri e stringhe)
• Undefined o Null (non difiniti o nulli)
Tipi di dato
Boolean
Il tipo boolean accetta solo due possibili valori,
true (vero) o false (falso)
var first = true;

var second = false;
Tipi di dato
Number
Il tipo integer accetta valori numerici interi
compresi tra -infinito a +infinito:
var first = 10;

var second = 1540;

var third = -230;

var fourth = 5*3;
Il tipo float accetta valori numerici reali compresi
tra -infinito a +infinito:
var first = 4.153; // 4,153

var second = 3.2e5; //3,2 * 10^5
Tipi di dato
String
Il tipo string accetta qualsiasi tipologia di
carattere compreso tra singoli o doppi apici:
var first = “This is a string”;

var second = ‘This is another string’;

var third = ‘This is “the last” string’;
Tipi di dato
Undefined/Null
Il tipo undefined è il valore di una variabile che
non ha valore. Viceversa, il tipo null è una
variabile vuota:
var first;

console.log(first); // undefined


var second = null;

console.log(second); //null
Operatori
Gli operatori aritmetici seguono la stessa logica
degli operatori aritmetici a cui siamo abituati; +, -,
*, /, % (modulo)
Gli operatori di assegnazione servono per
assegnare un valore ad una variabile.
• = (assegnazione)
• += (somma per assegnamento)
• -= (sottrazione per assegnamento)
• *= (moltiplicazione per assegnamento)
• /= (divisione per assegnamento)
• %= (modulo per assegnamento)
Gli operatori booleani seguono la logica del suo
creatore, George Bool. Si basano su una
matematica che accetta solo due possibili valori:
true e false.
• && (AND logico)
• || (OR logico)
• ! (NOT logico)
A B X
0 0 0
0 1 0
1 0 0
1 1 1
A B X
0 0 0
0 1 1
1 0 1
1 1 1
A X
0 1
1 0
AND OR NOT
Gli operatori di controllo matematici verificano se
la condizione può essere vera.
• == (uguaglianza)
• === (uguaglianza di
valore e di tipo)
• < (minore)
• <= (minore e uguale)
• > (maggiore)
• >= (maggiore e
uguale)
• != (diverso)
• !== (differente valore e
tipo)
Gli operatori di incremento servono ad
incrementare o decrementare di 1 una variabile.
• ++ (incremento - prefisso e postfisso)
• -- (decremento - prefisso e postfisso)
Strutture di controllo
Le strutture condizionali permettono di eseguire
un blocco di codice se la sua condizione è vera.
if(condition)

statement
if(condition)

statement

else

statement
if(condition)

statement

elseif

statement

else

statement
switch permette in modo più chiaro e pulito
l’esecuzione di più if in cascata, a patto che la
condizione rimanga sempre la medesima.
switch(condition)
case statement
break
L’istruzione all’interno di while viene eseguita
fintantoché la condizione risulterà essere vera.
while(condition)

statement

increment
Il comportamento è analogo a while, con l’unica
differenza che l’incremento del valore avviene
prima dell’esecuzione dello statement.
for(instance; expression; increment)

statement
Grazie a try è possibile “catturare” i possibili errori
derivanti dal nostro codice ed eseguire delle
azioni adeguate.
try

statement

catch(error)

error statement
Strutture di dati
Le strutture di dati in JavaScript sono:
• Array
• Functions (funzioni)
• Objects (oggetti)
Strutture di dati
Array
Un array è un’insieme di valori (stringhe, numeri o
array) accomunati da un indice.
Un array può essere definito come una collezione
organizzata di oggetti.
Per collezione, si intende che gli oggetti che ne
fanno parte siano dello stesso tipo (in JavaScript,
e in molti altri linguaggi, possono anche non
esserlo).
Per organizzata, implica che sia possibile
identificare univocamente tutti gli oggetti
dell’array in modo sistematico.
2 3 5 7 11 13 17 19
0 1 2 3 4 5 6 7
Ad esempio: array di numeri primi
var numeriPrimi = new Array(2,3,5,7,11,13,17,19);
Gli array possono anche essere definiti nel
seguente modo:
var numeriPrimi = new Array();

numeriPrimi[0] = 2;

numeriPrimi[1] = 3;

numeriPrimi[2] = 5;
Gli array possono anche essere utilizzati in modo
literal (array literal) senza per forza di cose
istanziare una nuova istanza della classe Array.
var numeriPrimi = [2,3,5,7,11,13,17,19];
console.log(numeriPrimi[2]); // 5
Strutture di dati
Function
Una funzione permette di creare un blocco di
codice in modo da poter essere richiamato ed
eseguito successivamente, anche in molteplici
punti diversi della nostra applicazione.
Oltre alle numerose funzioni che JavaScript ci
mette a disposizione, abbiamo la possibilità di
creare noi stessi delle funzioni personalizzate atte
a svolgere determinati compiti all’interno del
nostro codice; richiamando semplicemente la
porzione di codice relativa, alla quale avremo
attribuito un nome che identifichi la funzione.
var nomeFunzione = function(){
statement
return
}
L’istruzione return, seguita dal valore che deve
ritornare, è un metodo più semplice ed efficace
per poter gestire il risultato dei calcoli che
vengono effettuati all’interno della funzione.
console.log(nomeFunzione());
var first = nomeFunzione();
Alla funzione, inoltre, possiamo attribuire tutta
una serie di parametri aggiuntivi che possono
variare all’interno dell’esecuzione del nostro
programma, attuando il concetto di riusabilità del
codice.
var nomeFunzione = function(arg1, arg2, argn){
statement
return
}
Gli argomenti, infine, possono avere dei valori di
default che, nel caso non vengano definiti nel
richiamare la funzione, vengono utilizzati
comunque prendendo il valore di default che gli
è stato attribuito.
var nomeFunzione = function(arg1, arg2, argn = 0){
statement
return
}
nomeFunzione(1,2);
Gli argomenti sono dei segnaposto all’interno
della nostra funzione. Se il nome dell’argomento
è uguale al nome di una variabile all’esterno della
funzione, i calcoli fatti su entrambe sono
individuali e non vanno ad incidere l’uno sull’altro
(scoping).
var arg1 = ‘argument 1’;

var nomeFunzione = function(arg1, arg2, argn){
statement
return
}
Strutture di dati
Object
Gli oggetti sono i principali tipi di dato in
JavaScript: qualsiasi cosa è, in realtà, un oggetto.


Un oggetto non è altro che una struttura con delle
proprietà e dei metodi.
var first = new Array(“abc”, 234);


console.log(first.length); //proprietà

first.push(12); // metodo
È possibile, tuttavia, costruire degli oggetti
personalizzati, anche abbastanza complessi,
attraverso le funzioni costruttrici.
Si può ad esempio creare un oggetto cane, con
delle proprietà come razza e taglia, e delle istanze
riferite all'oggetto cane, come Pastore Tedesco o
Barboncino.
Inoltre, essendo JavaScript basato sul DOM, gli
elementi stessi del DOM costituiscono degli
oggetti lato client, ovvero degli elementi presenti
nella pagina HTML che hanno delle proprietà e
dei metodi predefiniti.
Ad esempio, la finestra nella quale è descritta una
pagina HTML è rappresentata da un oggetto
window, che può essere chiusa o aperta,
attraverso i metodi close() e open().
Così come succede per gli array, anche gli oggetti
possono essere creati con la direttiva new:
var obj = new Object();

obj.name = “Pippo”;

obj.surname = “Pluto”;

obj.walk = function(step){};
console.log(obj.name); // Pippo
Tuttavia, anche per gli oggetti, si preferisce
utilizzare la sua forma literal (object literal):
var obj = {

name:“Pippo”,

surname:“Pluto”,

walk:function(step){}

};
console.log(obj.name); // Pippo
2015 Giovanni Buffa - CC by-nd 3.0

More Related Content

What's hot

11 - Programmazione: Tipi di dato strutturati pt. 2
11 - Programmazione: Tipi di dato strutturati pt. 211 - Programmazione: Tipi di dato strutturati pt. 2
11 - Programmazione: Tipi di dato strutturati pt. 2Majong DevJfu
 
05 - Programmazione: Funzioni
05 - Programmazione: Funzioni05 - Programmazione: Funzioni
05 - Programmazione: FunzioniMajong DevJfu
 
LINQ, Entities Framework & ORMs
LINQ, Entities Framework & ORMsLINQ, Entities Framework & ORMs
LINQ, Entities Framework & ORMs
JUG Genova
 
Lezione 16 (2 aprile 2012)
Lezione 16 (2 aprile 2012)Lezione 16 (2 aprile 2012)
Lezione 16 (2 aprile 2012)STELITANO
 
Array in C++
Array in C++Array in C++
Array in C++
Ilio Catallo
 
Java lezione 2
Java lezione 2Java lezione 2
Java lezione 2
Sergio Ronchi
 
10 - Programmazione: Tipi di dato strutturati
10 - Programmazione: Tipi di dato strutturati10 - Programmazione: Tipi di dato strutturati
10 - Programmazione: Tipi di dato strutturatiMajong DevJfu
 
9 Altre Istruzioni Di I O
9   Altre Istruzioni Di I O9   Altre Istruzioni Di I O
9 Altre Istruzioni Di I Oguest60e9511
 
What's new in C# 7
What's new in C# 7What's new in C# 7
What's new in C# 7
Marco Parenzan
 
08 - Programmazione: Passaggio valori tra funzioni per riferimenti
08 - Programmazione: Passaggio valori tra funzioni per riferimenti08 - Programmazione: Passaggio valori tra funzioni per riferimenti
08 - Programmazione: Passaggio valori tra funzioni per riferimentiMajong DevJfu
 
Java5
Java5Java5
Puntatori e Riferimenti
Puntatori e RiferimentiPuntatori e Riferimenti
Puntatori e Riferimenti
Ilio Catallo
 
Enrico Zimuel - PUG Milano meetup - Codemotion Milan 2017
Enrico Zimuel - PUG Milano meetup - Codemotion Milan 2017Enrico Zimuel - PUG Milano meetup - Codemotion Milan 2017
Enrico Zimuel - PUG Milano meetup - Codemotion Milan 2017
Codemotion
 

What's hot (20)

06 2 vector_matrici
06 2 vector_matrici06 2 vector_matrici
06 2 vector_matrici
 
11 - Programmazione: Tipi di dato strutturati pt. 2
11 - Programmazione: Tipi di dato strutturati pt. 211 - Programmazione: Tipi di dato strutturati pt. 2
11 - Programmazione: Tipi di dato strutturati pt. 2
 
05 - Programmazione: Funzioni
05 - Programmazione: Funzioni05 - Programmazione: Funzioni
05 - Programmazione: Funzioni
 
LINQ, Entities Framework & ORMs
LINQ, Entities Framework & ORMsLINQ, Entities Framework & ORMs
LINQ, Entities Framework & ORMs
 
Lezione 16 (2 aprile 2012)
Lezione 16 (2 aprile 2012)Lezione 16 (2 aprile 2012)
Lezione 16 (2 aprile 2012)
 
Array in C++
Array in C++Array in C++
Array in C++
 
Java lezione 2
Java lezione 2Java lezione 2
Java lezione 2
 
10 - Programmazione: Tipi di dato strutturati
10 - Programmazione: Tipi di dato strutturati10 - Programmazione: Tipi di dato strutturati
10 - Programmazione: Tipi di dato strutturati
 
2008 python
2008 python2008 python
2008 python
 
07 1 funzioni
07 1 funzioni07 1 funzioni
07 1 funzioni
 
2006 Py02 base
2006 Py02 base2006 Py02 base
2006 Py02 base
 
05 1 intro-struttura
05 1 intro-struttura05 1 intro-struttura
05 1 intro-struttura
 
9 Altre Istruzioni Di I O
9   Altre Istruzioni Di I O9   Altre Istruzioni Di I O
9 Altre Istruzioni Di I O
 
What's new in C# 7
What's new in C# 7What's new in C# 7
What's new in C# 7
 
08 - Programmazione: Passaggio valori tra funzioni per riferimenti
08 - Programmazione: Passaggio valori tra funzioni per riferimenti08 - Programmazione: Passaggio valori tra funzioni per riferimenti
08 - Programmazione: Passaggio valori tra funzioni per riferimenti
 
2006 Py03 intermedio
2006 Py03 intermedio2006 Py03 intermedio
2006 Py03 intermedio
 
Java5
Java5Java5
Java5
 
Puntatori e Riferimenti
Puntatori e RiferimentiPuntatori e Riferimenti
Puntatori e Riferimenti
 
06 3 struct
06 3 struct06 3 struct
06 3 struct
 
Enrico Zimuel - PUG Milano meetup - Codemotion Milan 2017
Enrico Zimuel - PUG Milano meetup - Codemotion Milan 2017Enrico Zimuel - PUG Milano meetup - Codemotion Milan 2017
Enrico Zimuel - PUG Milano meetup - Codemotion Milan 2017
 

Viewers also liked

Introduzione a jQuery
Introduzione a jQueryIntroduzione a jQuery
Introduzione a jQuery
Emiliano Castellina
 
corso web developer - Introduzione a Javascript
corso web developer - Introduzione a Javascriptcorso web developer - Introduzione a Javascript
corso web developer - Introduzione a Javascript
Riccardo Piccioni
 
node.js everywhere
node.js everywherenode.js everywhere
node.js everywhere
Valerio Coltre
 
Node.js: perche' tutto questo hype?
Node.js: perche' tutto questo hype?Node.js: perche' tutto questo hype?
Node.js: perche' tutto questo hype?
Giancarlo Valente
 
Introduzione a node: cenni storici ecc
Introduzione a node: cenni storici eccIntroduzione a node: cenni storici ecc
Introduzione a node: cenni storici eccLuciano Colosio
 
Aulas linux
Aulas linuxAulas linux
Aulas linux
Luis Soares
 
Apache Cordova: Overview and Introduction
Apache Cordova: Overview and IntroductionApache Cordova: Overview and Introduction
Apache Cordova: Overview and Introduction
Gabriele Falasca
 
Corso base di Tecnologie WEB - Primi passi in javascript
Corso base di Tecnologie WEB - Primi passi in javascriptCorso base di Tecnologie WEB - Primi passi in javascript
Corso base di Tecnologie WEB - Primi passi in javascript
Studiabo
 
V. liqviat 2009
V. liqviat 2009V. liqviat 2009
V. liqviat 2009nera24mx
 
node.js e Postgresql
node.js e Postgresqlnode.js e Postgresql
node.js e Postgresql
Lucio Grenzi
 
DotNetToscana - Sessione TypeScript
DotNetToscana - Sessione TypeScriptDotNetToscana - Sessione TypeScript
DotNetToscana - Sessione TypeScriptSinergia Totale
 
Web base-03-js-numeri stringearray
Web base-03-js-numeri stringearrayWeb base-03-js-numeri stringearray
Web base-03-js-numeri stringearray
Studiabo
 
Il Web orientato al futuro: Express, Angular e nodeJS
Il Web orientato al futuro: Express, Angular e nodeJS Il Web orientato al futuro: Express, Angular e nodeJS
Il Web orientato al futuro: Express, Angular e nodeJS
Eugenio Minardi
 
Workshop AngularJs, Cordova, Ionic - Politecnico di Milano
Workshop AngularJs, Cordova, Ionic - Politecnico di MilanoWorkshop AngularJs, Cordova, Ionic - Politecnico di Milano
Workshop AngularJs, Cordova, Ionic - Politecnico di Milano
Gabriele Gaggi
 
Da JavaScript a TypeScript
Da JavaScript a TypeScriptDa JavaScript a TypeScript
Da JavaScript a TypeScript
Roberto Messora
 
Node js: che cos'è e a che cosa serve?
Node js: che cos'è e a che cosa serve?Node js: che cos'è e a che cosa serve?
Node js: che cos'è e a che cosa serve?
Flavius-Florin Harabor
 
JavaScript
JavaScriptJavaScript
JavaScript
Manuel Scapolan
 
Mastering Twig (DrupalCon Barcelona 2015)
Mastering Twig (DrupalCon Barcelona 2015)Mastering Twig (DrupalCon Barcelona 2015)
Mastering Twig (DrupalCon Barcelona 2015)
Javier Eguiluz
 
Roma linuxday 2013 - nodejs
Roma linuxday 2013 - nodejsRoma linuxday 2013 - nodejs
Roma linuxday 2013 - nodejs
Claudio Mignanti
 
Angular js o React? Spunti e idee per la scelta di un framework
Angular js o React? Spunti e idee per la scelta di un frameworkAngular js o React? Spunti e idee per la scelta di un framework
Angular js o React? Spunti e idee per la scelta di un framework
Giovanni Buffa
 

Viewers also liked (20)

Introduzione a jQuery
Introduzione a jQueryIntroduzione a jQuery
Introduzione a jQuery
 
corso web developer - Introduzione a Javascript
corso web developer - Introduzione a Javascriptcorso web developer - Introduzione a Javascript
corso web developer - Introduzione a Javascript
 
node.js everywhere
node.js everywherenode.js everywhere
node.js everywhere
 
Node.js: perche' tutto questo hype?
Node.js: perche' tutto questo hype?Node.js: perche' tutto questo hype?
Node.js: perche' tutto questo hype?
 
Introduzione a node: cenni storici ecc
Introduzione a node: cenni storici eccIntroduzione a node: cenni storici ecc
Introduzione a node: cenni storici ecc
 
Aulas linux
Aulas linuxAulas linux
Aulas linux
 
Apache Cordova: Overview and Introduction
Apache Cordova: Overview and IntroductionApache Cordova: Overview and Introduction
Apache Cordova: Overview and Introduction
 
Corso base di Tecnologie WEB - Primi passi in javascript
Corso base di Tecnologie WEB - Primi passi in javascriptCorso base di Tecnologie WEB - Primi passi in javascript
Corso base di Tecnologie WEB - Primi passi in javascript
 
V. liqviat 2009
V. liqviat 2009V. liqviat 2009
V. liqviat 2009
 
node.js e Postgresql
node.js e Postgresqlnode.js e Postgresql
node.js e Postgresql
 
DotNetToscana - Sessione TypeScript
DotNetToscana - Sessione TypeScriptDotNetToscana - Sessione TypeScript
DotNetToscana - Sessione TypeScript
 
Web base-03-js-numeri stringearray
Web base-03-js-numeri stringearrayWeb base-03-js-numeri stringearray
Web base-03-js-numeri stringearray
 
Il Web orientato al futuro: Express, Angular e nodeJS
Il Web orientato al futuro: Express, Angular e nodeJS Il Web orientato al futuro: Express, Angular e nodeJS
Il Web orientato al futuro: Express, Angular e nodeJS
 
Workshop AngularJs, Cordova, Ionic - Politecnico di Milano
Workshop AngularJs, Cordova, Ionic - Politecnico di MilanoWorkshop AngularJs, Cordova, Ionic - Politecnico di Milano
Workshop AngularJs, Cordova, Ionic - Politecnico di Milano
 
Da JavaScript a TypeScript
Da JavaScript a TypeScriptDa JavaScript a TypeScript
Da JavaScript a TypeScript
 
Node js: che cos'è e a che cosa serve?
Node js: che cos'è e a che cosa serve?Node js: che cos'è e a che cosa serve?
Node js: che cos'è e a che cosa serve?
 
JavaScript
JavaScriptJavaScript
JavaScript
 
Mastering Twig (DrupalCon Barcelona 2015)
Mastering Twig (DrupalCon Barcelona 2015)Mastering Twig (DrupalCon Barcelona 2015)
Mastering Twig (DrupalCon Barcelona 2015)
 
Roma linuxday 2013 - nodejs
Roma linuxday 2013 - nodejsRoma linuxday 2013 - nodejs
Roma linuxday 2013 - nodejs
 
Angular js o React? Spunti e idee per la scelta di un framework
Angular js o React? Spunti e idee per la scelta di un frameworkAngular js o React? Spunti e idee per la scelta di un framework
Angular js o React? Spunti e idee per la scelta di un framework
 

Similar to Introduzione a JavaScript

Introduzione a scala prima parte
Introduzione a scala   prima parteIntroduzione a scala   prima parte
Introduzione a scala prima parte
Onofrio Panzarino
 
Linguaggio R, principi e concetti
Linguaggio R, principi e concettiLinguaggio R, principi e concetti
Linguaggio R, principi e concetti
Vincenzo De Maio
 
Scala Programming Linux Day 2009
Scala Programming Linux Day 2009Scala Programming Linux Day 2009
Scala Programming Linux Day 2009
Massimiliano Dessì
 
Corso Programmazione Java Base
Corso Programmazione Java BaseCorso Programmazione Java Base
Corso Programmazione Java Base
K-Tech Formazione
 
Object Oriented with Java Programmazione Base
Object Oriented with Java Programmazione BaseObject Oriented with Java Programmazione Base
Object Oriented with Java Programmazione Base
Felice Pescatore
 
Diversamente Javascript: si.. può.. fare! (di Mirko Ravaioli)
Diversamente Javascript: si.. può.. fare! (di Mirko Ravaioli)Diversamente Javascript: si.. può.. fare! (di Mirko Ravaioli)
Diversamente Javascript: si.. può.. fare! (di Mirko Ravaioli)
From The Front
 
Javascript - 4 | WebMaster & WebDesigner
Javascript - 4 | WebMaster & WebDesignerJavascript - 4 | WebMaster & WebDesigner
Javascript - 4 | WebMaster & WebDesigner
Matteo Magni
 
Ruby in 25 minuti
Ruby in 25 minutiRuby in 25 minuti
Ruby in 25 minuti
Marcello Missiroli
 
Java Lezione 1
Java Lezione 1Java Lezione 1
Java Lezione 1
Sergio Ronchi
 
R Vectors
R VectorsR Vectors
R Vectors
Davide Rambaldi
 
Java OCA teoria 1
Java OCA teoria 1Java OCA teoria 1
Java OCA teoria 1
Valerio Radice
 
Intro to JavaScript
Intro to JavaScriptIntro to JavaScript
Intro to JavaScript
Alessandro Muraro
 
Rubynetto
RubynettoRubynetto
Rubynetto
Alessandro DS
 
Riepilogo Java C/C++
Riepilogo Java C/C++Riepilogo Java C/C++
Riepilogo Java C/C++
Pasquale Paola
 
Corso Python Deltapromo lezione 1
Corso Python Deltapromo   lezione 1Corso Python Deltapromo   lezione 1
Corso Python Deltapromo lezione 1
Paolo Ferretti
 
Lezione JSP database Crud
Lezione JSP database CrudLezione JSP database Crud
Js intro
Js introJs intro

Similar to Introduzione a JavaScript (20)

Introduzione a scala prima parte
Introduzione a scala   prima parteIntroduzione a scala   prima parte
Introduzione a scala prima parte
 
Linguaggio R, principi e concetti
Linguaggio R, principi e concettiLinguaggio R, principi e concetti
Linguaggio R, principi e concetti
 
Scala Programming Linux Day 2009
Scala Programming Linux Day 2009Scala Programming Linux Day 2009
Scala Programming Linux Day 2009
 
Corso Programmazione Java Base
Corso Programmazione Java BaseCorso Programmazione Java Base
Corso Programmazione Java Base
 
Object Oriented with Java Programmazione Base
Object Oriented with Java Programmazione BaseObject Oriented with Java Programmazione Base
Object Oriented with Java Programmazione Base
 
Diversamente Javascript: si.. può.. fare! (di Mirko Ravaioli)
Diversamente Javascript: si.. può.. fare! (di Mirko Ravaioli)Diversamente Javascript: si.. può.. fare! (di Mirko Ravaioli)
Diversamente Javascript: si.. può.. fare! (di Mirko Ravaioli)
 
Javascript - 4 | WebMaster & WebDesigner
Javascript - 4 | WebMaster & WebDesignerJavascript - 4 | WebMaster & WebDesigner
Javascript - 4 | WebMaster & WebDesigner
 
Ruby in 25 minuti
Ruby in 25 minutiRuby in 25 minuti
Ruby in 25 minuti
 
Template
TemplateTemplate
Template
 
Java Lezione 1
Java Lezione 1Java Lezione 1
Java Lezione 1
 
Corso Java
Corso JavaCorso Java
Corso Java
 
R Vectors
R VectorsR Vectors
R Vectors
 
Java OCA teoria 1
Java OCA teoria 1Java OCA teoria 1
Java OCA teoria 1
 
Intro to JavaScript
Intro to JavaScriptIntro to JavaScript
Intro to JavaScript
 
Rubynetto
RubynettoRubynetto
Rubynetto
 
Riepilogo Java C/C++
Riepilogo Java C/C++Riepilogo Java C/C++
Riepilogo Java C/C++
 
Programming iOS lezione 3
Programming iOS lezione 3Programming iOS lezione 3
Programming iOS lezione 3
 
Corso Python Deltapromo lezione 1
Corso Python Deltapromo   lezione 1Corso Python Deltapromo   lezione 1
Corso Python Deltapromo lezione 1
 
Lezione JSP database Crud
Lezione JSP database CrudLezione JSP database Crud
Lezione JSP database Crud
 
Js intro
Js introJs intro
Js intro
 

More from Giovanni Buffa

Introduzioni ai services in Angular 4 e ad RxJS
Introduzioni ai services in Angular 4 e ad RxJSIntroduzioni ai services in Angular 4 e ad RxJS
Introduzioni ai services in Angular 4 e ad RxJS
Giovanni Buffa
 
Introduzione ai componenti in Angular 4
Introduzione ai componenti in Angular 4Introduzione ai componenti in Angular 4
Introduzione ai componenti in Angular 4
Giovanni Buffa
 
Introduzione ad Angular CLI
Introduzione ad Angular CLIIntroduzione ad Angular CLI
Introduzione ad Angular CLI
Giovanni Buffa
 
Introduzione ad ECMAScript 6 (ES6) e TypeScript
Introduzione ad ECMAScript 6 (ES6) e TypeScriptIntroduzione ad ECMAScript 6 (ES6) e TypeScript
Introduzione ad ECMAScript 6 (ES6) e TypeScript
Giovanni Buffa
 
15 concetti importanti su javascript
15 concetti importanti su javascript15 concetti importanti su javascript
15 concetti importanti su javascript
Giovanni Buffa
 
Angular 4 - convertire o migrare un'applicazione Angularjs
Angular 4 -  convertire o migrare un'applicazione AngularjsAngular 4 -  convertire o migrare un'applicazione Angularjs
Angular 4 - convertire o migrare un'applicazione Angularjs
Giovanni Buffa
 
Introduzione a Drupal - Versione Italiana
Introduzione a Drupal - Versione ItalianaIntroduzione a Drupal - Versione Italiana
Introduzione a Drupal - Versione Italiana
Giovanni Buffa
 
Laboratorio di Web Design 2015/16 - Introduzione al corso
Laboratorio di Web Design 2015/16 - Introduzione al corsoLaboratorio di Web Design 2015/16 - Introduzione al corso
Laboratorio di Web Design 2015/16 - Introduzione al corso
Giovanni Buffa
 
Workshop Ideare e creare Web Applications, Introduzione ad AngularJS
Workshop Ideare e creare Web Applications, Introduzione ad AngularJSWorkshop Ideare e creare Web Applications, Introduzione ad AngularJS
Workshop Ideare e creare Web Applications, Introduzione ad AngularJS
Giovanni Buffa
 
Introduzione a GIT - Laboratorio di Web Design 2014/15
Introduzione a GIT - Laboratorio di Web Design 2014/15Introduzione a GIT - Laboratorio di Web Design 2014/15
Introduzione a GIT - Laboratorio di Web Design 2014/15
Giovanni Buffa
 
Developing for Performances - Laboratorio di Web Design 2014/15
Developing for Performances - Laboratorio di Web Design 2014/15Developing for Performances - Laboratorio di Web Design 2014/15
Developing for Performances - Laboratorio di Web Design 2014/15
Giovanni Buffa
 
Responsive Web Design & Mobile
Responsive Web Design & MobileResponsive Web Design & Mobile
Responsive Web Design & Mobile
Giovanni Buffa
 
The CSS Survival Manual - Giovanni Buffa (2014)
The CSS Survival Manual - Giovanni Buffa (2014)The CSS Survival Manual - Giovanni Buffa (2014)
The CSS Survival Manual - Giovanni Buffa (2014)Giovanni Buffa
 
Introduzione al Theme Engin di Drupal 7
Introduzione al Theme Engin di Drupal 7Introduzione al Theme Engin di Drupal 7
Introduzione al Theme Engin di Drupal 7
Giovanni Buffa
 
Introduzione a Drupal 7 Entity
Introduzione a Drupal 7 EntityIntroduzione a Drupal 7 Entity
Introduzione a Drupal 7 Entity
Giovanni Buffa
 
SEO - Laboratorio di Web Design 2014/15
SEO - Laboratorio di Web Design 2014/15SEO - Laboratorio di Web Design 2014/15
SEO - Laboratorio di Web Design 2014/15
Giovanni Buffa
 
Introduzione a SASS - Laboratorio di Web Design 2014/15
Introduzione a SASS - Laboratorio di Web Design 2014/15Introduzione a SASS - Laboratorio di Web Design 2014/15
Introduzione a SASS - Laboratorio di Web Design 2014/15Giovanni Buffa
 
Introduzione a Drupal
Introduzione a DrupalIntroduzione a Drupal
Introduzione a Drupal
Giovanni Buffa
 
CSS - Box Model
CSS - Box ModelCSS - Box Model
CSS - Box Model
Giovanni Buffa
 
Laboratorio di Web Design Base - 2014/15 - HTML/5
Laboratorio di Web Design Base - 2014/15 - HTML/5Laboratorio di Web Design Base - 2014/15 - HTML/5
Laboratorio di Web Design Base - 2014/15 - HTML/5
Giovanni Buffa
 

More from Giovanni Buffa (20)

Introduzioni ai services in Angular 4 e ad RxJS
Introduzioni ai services in Angular 4 e ad RxJSIntroduzioni ai services in Angular 4 e ad RxJS
Introduzioni ai services in Angular 4 e ad RxJS
 
Introduzione ai componenti in Angular 4
Introduzione ai componenti in Angular 4Introduzione ai componenti in Angular 4
Introduzione ai componenti in Angular 4
 
Introduzione ad Angular CLI
Introduzione ad Angular CLIIntroduzione ad Angular CLI
Introduzione ad Angular CLI
 
Introduzione ad ECMAScript 6 (ES6) e TypeScript
Introduzione ad ECMAScript 6 (ES6) e TypeScriptIntroduzione ad ECMAScript 6 (ES6) e TypeScript
Introduzione ad ECMAScript 6 (ES6) e TypeScript
 
15 concetti importanti su javascript
15 concetti importanti su javascript15 concetti importanti su javascript
15 concetti importanti su javascript
 
Angular 4 - convertire o migrare un'applicazione Angularjs
Angular 4 -  convertire o migrare un'applicazione AngularjsAngular 4 -  convertire o migrare un'applicazione Angularjs
Angular 4 - convertire o migrare un'applicazione Angularjs
 
Introduzione a Drupal - Versione Italiana
Introduzione a Drupal - Versione ItalianaIntroduzione a Drupal - Versione Italiana
Introduzione a Drupal - Versione Italiana
 
Laboratorio di Web Design 2015/16 - Introduzione al corso
Laboratorio di Web Design 2015/16 - Introduzione al corsoLaboratorio di Web Design 2015/16 - Introduzione al corso
Laboratorio di Web Design 2015/16 - Introduzione al corso
 
Workshop Ideare e creare Web Applications, Introduzione ad AngularJS
Workshop Ideare e creare Web Applications, Introduzione ad AngularJSWorkshop Ideare e creare Web Applications, Introduzione ad AngularJS
Workshop Ideare e creare Web Applications, Introduzione ad AngularJS
 
Introduzione a GIT - Laboratorio di Web Design 2014/15
Introduzione a GIT - Laboratorio di Web Design 2014/15Introduzione a GIT - Laboratorio di Web Design 2014/15
Introduzione a GIT - Laboratorio di Web Design 2014/15
 
Developing for Performances - Laboratorio di Web Design 2014/15
Developing for Performances - Laboratorio di Web Design 2014/15Developing for Performances - Laboratorio di Web Design 2014/15
Developing for Performances - Laboratorio di Web Design 2014/15
 
Responsive Web Design & Mobile
Responsive Web Design & MobileResponsive Web Design & Mobile
Responsive Web Design & Mobile
 
The CSS Survival Manual - Giovanni Buffa (2014)
The CSS Survival Manual - Giovanni Buffa (2014)The CSS Survival Manual - Giovanni Buffa (2014)
The CSS Survival Manual - Giovanni Buffa (2014)
 
Introduzione al Theme Engin di Drupal 7
Introduzione al Theme Engin di Drupal 7Introduzione al Theme Engin di Drupal 7
Introduzione al Theme Engin di Drupal 7
 
Introduzione a Drupal 7 Entity
Introduzione a Drupal 7 EntityIntroduzione a Drupal 7 Entity
Introduzione a Drupal 7 Entity
 
SEO - Laboratorio di Web Design 2014/15
SEO - Laboratorio di Web Design 2014/15SEO - Laboratorio di Web Design 2014/15
SEO - Laboratorio di Web Design 2014/15
 
Introduzione a SASS - Laboratorio di Web Design 2014/15
Introduzione a SASS - Laboratorio di Web Design 2014/15Introduzione a SASS - Laboratorio di Web Design 2014/15
Introduzione a SASS - Laboratorio di Web Design 2014/15
 
Introduzione a Drupal
Introduzione a DrupalIntroduzione a Drupal
Introduzione a Drupal
 
CSS - Box Model
CSS - Box ModelCSS - Box Model
CSS - Box Model
 
Laboratorio di Web Design Base - 2014/15 - HTML/5
Laboratorio di Web Design Base - 2014/15 - HTML/5Laboratorio di Web Design Base - 2014/15 - HTML/5
Laboratorio di Web Design Base - 2014/15 - HTML/5
 

Introduzione a JavaScript

  • 2. JavaScript è un linguaggio di scripting, il quale viene interpretato ed eseguito dal client (browser).
  • 3. Tutte le istruzioni JavaScript, per poter essere eseguite, necessitano di essere scritte all’interno del tag HTML: <script>…</script>
  • 4. Il tag <script> va sempre inserito prima della chiusura di <body>. Solo rari e specifici casi prevedono l’uso di <script> all’interno di <head>.
  • 5. A differenza di altri linguaggi di programmazione veri e propri, JavaScript non è orientato agli oggetti, come ObjectiveC o C#, ma si basa sugli oggetti.
  • 9. Le variabili sono delle “scatole” che possono contenere un qualsivoglia valore, numerico testuale o strutturale. Le variabili, per definizione, possono variare durante l’esecuzione dell’applicazione.
  • 10. Le variabili in JavaScript si scrivono anteponendo al nome della variabile la parola riservata var. var first = 1;
 var second = “Text”; Non è sempre necessario inizializzare le variabili. var first;
 var second, third, fourth;
  • 12. Le tipologie di dati in JavaScript sono: • Boolean (valori booleani) • Number (numeri interi o reali) • String (caratteri e stringhe) • Undefined o Null (non difiniti o nulli)
  • 14. Il tipo boolean accetta solo due possibili valori, true (vero) o false (falso) var first = true;
 var second = false;
  • 16. Il tipo integer accetta valori numerici interi compresi tra -infinito a +infinito: var first = 10;
 var second = 1540;
 var third = -230;
 var fourth = 5*3;
  • 17. Il tipo float accetta valori numerici reali compresi tra -infinito a +infinito: var first = 4.153; // 4,153
 var second = 3.2e5; //3,2 * 10^5
  • 19. Il tipo string accetta qualsiasi tipologia di carattere compreso tra singoli o doppi apici: var first = “This is a string”;
 var second = ‘This is another string’;
 var third = ‘This is “the last” string’;
  • 21. Il tipo undefined è il valore di una variabile che non ha valore. Viceversa, il tipo null è una variabile vuota: var first;
 console.log(first); // undefined 
 var second = null;
 console.log(second); //null
  • 23. Gli operatori aritmetici seguono la stessa logica degli operatori aritmetici a cui siamo abituati; +, -, *, /, % (modulo)
  • 24. Gli operatori di assegnazione servono per assegnare un valore ad una variabile. • = (assegnazione) • += (somma per assegnamento) • -= (sottrazione per assegnamento) • *= (moltiplicazione per assegnamento) • /= (divisione per assegnamento) • %= (modulo per assegnamento)
  • 25. Gli operatori booleani seguono la logica del suo creatore, George Bool. Si basano su una matematica che accetta solo due possibili valori: true e false. • && (AND logico) • || (OR logico) • ! (NOT logico)
  • 26. A B X 0 0 0 0 1 0 1 0 0 1 1 1 A B X 0 0 0 0 1 1 1 0 1 1 1 1 A X 0 1 1 0 AND OR NOT
  • 27. Gli operatori di controllo matematici verificano se la condizione può essere vera. • == (uguaglianza) • === (uguaglianza di valore e di tipo) • < (minore) • <= (minore e uguale) • > (maggiore) • >= (maggiore e uguale) • != (diverso) • !== (differente valore e tipo)
  • 28. Gli operatori di incremento servono ad incrementare o decrementare di 1 una variabile. • ++ (incremento - prefisso e postfisso) • -- (decremento - prefisso e postfisso)
  • 30. Le strutture condizionali permettono di eseguire un blocco di codice se la sua condizione è vera. if(condition)
 statement if(condition)
 statement
 else
 statement if(condition)
 statement
 elseif
 statement
 else
 statement
  • 31. switch permette in modo più chiaro e pulito l’esecuzione di più if in cascata, a patto che la condizione rimanga sempre la medesima. switch(condition) case statement break
  • 32. L’istruzione all’interno di while viene eseguita fintantoché la condizione risulterà essere vera. while(condition)
 statement
 increment
  • 33. Il comportamento è analogo a while, con l’unica differenza che l’incremento del valore avviene prima dell’esecuzione dello statement. for(instance; expression; increment)
 statement
  • 34. Grazie a try è possibile “catturare” i possibili errori derivanti dal nostro codice ed eseguire delle azioni adeguate. try
 statement
 catch(error)
 error statement
  • 36. Le strutture di dati in JavaScript sono: • Array • Functions (funzioni) • Objects (oggetti)
  • 38. Un array è un’insieme di valori (stringhe, numeri o array) accomunati da un indice.
  • 39. Un array può essere definito come una collezione organizzata di oggetti. Per collezione, si intende che gli oggetti che ne fanno parte siano dello stesso tipo (in JavaScript, e in molti altri linguaggi, possono anche non esserlo). Per organizzata, implica che sia possibile identificare univocamente tutti gli oggetti dell’array in modo sistematico.
  • 40. 2 3 5 7 11 13 17 19 0 1 2 3 4 5 6 7 Ad esempio: array di numeri primi var numeriPrimi = new Array(2,3,5,7,11,13,17,19);
  • 41. Gli array possono anche essere definiti nel seguente modo: var numeriPrimi = new Array();
 numeriPrimi[0] = 2;
 numeriPrimi[1] = 3;
 numeriPrimi[2] = 5;
  • 42. Gli array possono anche essere utilizzati in modo literal (array literal) senza per forza di cose istanziare una nuova istanza della classe Array. var numeriPrimi = [2,3,5,7,11,13,17,19]; console.log(numeriPrimi[2]); // 5
  • 44. Una funzione permette di creare un blocco di codice in modo da poter essere richiamato ed eseguito successivamente, anche in molteplici punti diversi della nostra applicazione.
  • 45. Oltre alle numerose funzioni che JavaScript ci mette a disposizione, abbiamo la possibilità di creare noi stessi delle funzioni personalizzate atte a svolgere determinati compiti all’interno del nostro codice; richiamando semplicemente la porzione di codice relativa, alla quale avremo attribuito un nome che identifichi la funzione.
  • 46. var nomeFunzione = function(){ statement return }
  • 47. L’istruzione return, seguita dal valore che deve ritornare, è un metodo più semplice ed efficace per poter gestire il risultato dei calcoli che vengono effettuati all’interno della funzione. console.log(nomeFunzione()); var first = nomeFunzione();
  • 48. Alla funzione, inoltre, possiamo attribuire tutta una serie di parametri aggiuntivi che possono variare all’interno dell’esecuzione del nostro programma, attuando il concetto di riusabilità del codice. var nomeFunzione = function(arg1, arg2, argn){ statement return }
  • 49. Gli argomenti, infine, possono avere dei valori di default che, nel caso non vengano definiti nel richiamare la funzione, vengono utilizzati comunque prendendo il valore di default che gli è stato attribuito. var nomeFunzione = function(arg1, arg2, argn = 0){ statement return } nomeFunzione(1,2);
  • 50. Gli argomenti sono dei segnaposto all’interno della nostra funzione. Se il nome dell’argomento è uguale al nome di una variabile all’esterno della funzione, i calcoli fatti su entrambe sono individuali e non vanno ad incidere l’uno sull’altro (scoping). var arg1 = ‘argument 1’;
 var nomeFunzione = function(arg1, arg2, argn){ statement return }
  • 52. Gli oggetti sono i principali tipi di dato in JavaScript: qualsiasi cosa è, in realtà, un oggetto. 
 Un oggetto non è altro che una struttura con delle proprietà e dei metodi. var first = new Array(“abc”, 234); 
 console.log(first.length); //proprietà
 first.push(12); // metodo
  • 53. È possibile, tuttavia, costruire degli oggetti personalizzati, anche abbastanza complessi, attraverso le funzioni costruttrici. Si può ad esempio creare un oggetto cane, con delle proprietà come razza e taglia, e delle istanze riferite all'oggetto cane, come Pastore Tedesco o Barboncino.
  • 54. Inoltre, essendo JavaScript basato sul DOM, gli elementi stessi del DOM costituiscono degli oggetti lato client, ovvero degli elementi presenti nella pagina HTML che hanno delle proprietà e dei metodi predefiniti. Ad esempio, la finestra nella quale è descritta una pagina HTML è rappresentata da un oggetto window, che può essere chiusa o aperta, attraverso i metodi close() e open().
  • 55. Così come succede per gli array, anche gli oggetti possono essere creati con la direttiva new: var obj = new Object();
 obj.name = “Pippo”;
 obj.surname = “Pluto”;
 obj.walk = function(step){}; console.log(obj.name); // Pippo
  • 56. Tuttavia, anche per gli oggetti, si preferisce utilizzare la sua forma literal (object literal): var obj = {
 name:“Pippo”,
 surname:“Pluto”,
 walk:function(step){}
 }; console.log(obj.name); // Pippo
  • 57. 2015 Giovanni Buffa - CC by-nd 3.0