SlideShare a Scribd company logo
TECNOLOGIE WEB BASE
Javascript (Node.js):
elementi di base
Programmi sincroni e asincroni
Programmi sincroni
Una istruzione viene
eseguita solo dopo che è
terminata l’esecuzione
dell’istruzione precedente.
Programmi asincroni
Una istruzione può essere
eseguita prima che sia
terminata l’esecuzione
dell’istruzione precedente.
PYTHON
JAVASCRIPT
Nella interrelazione
con il DOM o con un
server
Javascript e Node.js
Node.js è un versione di javascript che può
essere eseguita dal server.
Per fare i primi passi in javascript, utilizzeremo
la versione node.js eseguita da server che, non
interagendo con il dom, non pone problemi di
esecuzione asincrona delle istruzioni.
var MESS
MESS= 'Hello World!';
VARIABILI
Javascript
Assegnazione
Python
Assegnazione
MESS=’Hello World’
dichiarazione
STRINGHE
Javascript
(string/ ‘’)
Python
(str)
var STR, STR1, STR2;
STR1=’Hello ’;
STR2=’world’;
STR =STR1+STR2;
STR.replace(‘Hello’,’Wonderfull’);
STR.lenght
typeof STR
STR.constructor()
STR1=’Hello ’;
STR2=’world’;
STR =STR1+STR2;
STR.replace(‘Hello’,’Wonderfull’);
len(STR)
type(STR)
Numeri
Javascript
(number/ 0)
Python
(int, float)
var NUM1, NUM2, NUM3;
NUM1=5;
NUM2=3.66;
NUM3=NUM1/NUM2;
NUM3.toFixed()
NUM3.toString()
typeof NUM3
NUM3.constructor()
NUM1=5;
NUM2=3.66;
NUM3=NUM1/NUM2;
int(round(NUM3,0))
str(NUM3)
type(NUM3)
Liste
Javascript
(object/ [ ])
Python
(list)
var LIS1, LIS2;
LIS1=[10,12,52,64,37,'a','b']
LIS2=[7,55,44]
LIS1+LIS2 string
LIS1*2 NaN
LIS1.concat(LIS2)
LIS1[0]
LIS1[5]
LIS1.slice(0,3)
typeof LIS1
LIS1.constructor()
LIS1=[10,12,52,64,37,'a','b']
LIS2=[7,55,44]
LIS1+LIS2 concatenazione
LIS1*2 LIS1+LIS1
LIS1+LIS2
LIS1[0]
LIS1[5]
LIS1[0:3]
type(LIS1)
Dizionari
Javascript
(object/ { })
Python
(dict)
var DIZ1, DIZ2;
DIZ1={'DEU':100, 'FRA':150 }
DIZ2={'ITA':50, 'ESP':500}
DIZ1[‘DEU’]
typeof DIZ1
DIZ1.constructor()
DIZ1={'DEU':100, 'FRA':150 }
DIZ2={'ITA':50, 'ESP':500}
DIZ1[‘DEU’]
type(DIZ1)
Blocco if
Javascript Python
var V1=20;
var RIS='';
if (V1<5) {RIS="V1 is <=5";}
else if (V1<15) {RIS="V1 is ranging 5-15";}
else {RIS="V1 is >=15";}
V1=20
if V1<5: RIS="V1 is <=5"
elif V1<15: RIS="V1 is ranging 5-15"
else: RIS="V1 is >=15";
Ciclo for
Javascript Python
var text=''
for (var i=0; i<10; i=i+1) {text = text +" " + i}
text=''
for i in range(0,10):
text = text +" " + str(i)
Ciclo while
Javascript Python
var i=0;
var text=''
while (i < 10) {text = text +" " + i; i=i+1;}
text=''
i=0
while True:
text = text +" " + str(i)
i=i+1
if i >= 10:
break
TECNOLOGIE WEB BASE
Javascript e Node.js:
oggetti globali
Oggetti globali javascript e Node.js
javascript Node.js
console console
E’ un oggetto globale che fornisce una interfaccia di debug.
console.log(‘......’) console.log(‘.....’)
Scrive la stringa passata come argomento nello standard output
L’oggetto console di Node.js non replica perfettamente l’oggetto console dei principali
browser. Ad esempio non ha implementato il metodo .clean() per cancellare il
contenuto dello standard output
Moduli base Node.js e python
Node.js Python
os sys path process os
var os=require('os');
var sys=require('sys');
var path=require('path');
import os
import sys
sys
process.env.PATH sys.path
path.dirname()
path.join('...','...’')
process.cwd();
os.hostname()
os.arch()
process.pid
os.path.curdir
os.sys.join(‘......’, ‘.......’)
os.path.abspath(os.path.curdir)
os.uname()
os.getpid()
LEZIONE 1..
www.fordatascientist.org
D00-Web-JsBase
D10-Nodejs-Introduction
TECNOLOGIE WEB BASE
Funzioni
Funzioni: tramite dichiarazione
Javascript Python
function Sum(N1,N2){
// This function does sum of two number
console.log('Sum is running')
S=N1+N2;
return S
}
var N;
N=Sum(12,74);
def Sum(N1,N2):
‘’’This function does sum of two number’’’
print('Sum is running')
S=N1+N2;
return S
N=Sum(12,74);
Funzioni: tramite assegnazione
Javascript
var Sum= function (N1,N2){
// This function does sum of two number
console.log('Sum is running')
S=N1+N2;
return S
}
var N;
N=Sum(12,74);
dal punto di vista funzionale, la creazione di
una funzione tramite dichiarazione è
equivalente alla creazione tramite
assegnazione. La creazione tramite
assegnazione può essere utile in termini di
“chiarezza del codice” quando si vuole
utilizzare la funzione come input di un’altra
funzione. Ad esempio
var SAY=function(WORD)
{console.log(WORD);}
function Exec(someF, VAL)
{someF(VAL);}
Exec(SAY, "Hello");
Funzioni: dichiarazione e assegnazione
Le funzioni create tramite dichiarazione sono caricate in
memoria centrale prima di processare le altre istruzioni.
Una funzione creata tramite dichiarazione può essere
posizionata anche dopo la sua chiamata.
Scope delle variabili interne ad una funzione
Javascript Python
possono essere sia locali
che globali. Sono locali se
sono create tramite il
costruttore ‘var’. Sono
globali se sono create
tramite una semplice
assegnazione.
una variabile creata
all’interno di una funzione
è sempre locale, a meno
che essa prima di essere
creata non sia stata
definita come ‘global’
LEZIONE 1..
www.fordatascientist.org
D00-Web-JsBase
D12-Nodejs-Function
CONTATTI TELEFONO
051 22 35 20
EMAIL
WORKSHOP@VICEM.IT
var
number
typeof
string
object
[ ]
{ }
constructor
Ad

Recommended

Web base-03-js-numeri stringearray
Web base-03-js-numeri stringearray
Studiabo
 
J huery
J huery
nicrizzo
 
Comunicazione tra procesi Linux
Comunicazione tra procesi Linux
Marco Buttolo
 
Espressioni regolari da 0 a esperti
Espressioni regolari da 0 a esperti
Mariano Fiorentino
 
PHP on the desktop
PHP on the desktop
Massimiliano Arione
 
Gestione delle dipendenze con Composer
Gestione delle dipendenze con Composer
Massimiliano Arione
 
Web base - CSS e selettori
Web base - CSS e selettori
Annalisa Vignoli
 
Web base - HTML
Web base - HTML
Annalisa Vignoli
 
Python base lezione 5
Python base lezione 5
Annalisa Vignoli
 
Python base lezione1
Python base lezione1
Annalisa Vignoli
 
ForDataScientist - Python matplotlib
ForDataScientist - Python matplotlib
Annalisa Vignoli
 
Python base lezione 2
Python base lezione 2
Annalisa Vignoli
 
Python base lezione 3
Python base lezione 3
Annalisa Vignoli
 
Python base lezione 4
Python base lezione 4
Annalisa Vignoli
 
ForDataScientist - Python advanced data
ForDataScientist - Python advanced data
Annalisa Vignoli
 
Web base - SVG
Web base - SVG
Annalisa Vignoli
 
WEB BASE - Una visione d'insieme delle tecnologie web
WEB BASE - Una visione d'insieme delle tecnologie web
Annalisa Vignoli
 
Oracle ebs leave management system
Oracle ebs leave management system
Roknuzzaman Suruz
 
ForDataScientist - Python base parte2
ForDataScientist - Python base parte2
Annalisa Vignoli
 
Dizajn za Facebook stranice - Tanja Dujmović
Dizajn za Facebook stranice - Tanja Dujmović
Tanja Dujmović
 
Celulita
Celulita
davidzbal
 
Sales Presentation 2-12-2016 TM
Sales Presentation 2-12-2016 TM
Travis Martin
 
Climate Change White Paper_Published
Climate Change White Paper_Published
Alita Ostapkovich
 
Requsition user menual
Requsition user menual
Roknuzzaman Suruz
 
Don Xem Quan Ao Thoi Trang Nu Moi Nhat Tai Tyty
Don Xem Quan Ao Thoi Trang Nu Moi Nhat Tai Tyty
Quân Đào
 
erald kolici portfolio
erald kolici portfolio
Erald Kolici
 
Fordatascientist - Tecnologie Web base
Fordatascientist - Tecnologie Web base
Annalisa Vignoli
 
Corso base di Tecnologie WEB - Primi passi in javascript
Corso base di Tecnologie WEB - Primi passi in javascript
Studiabo
 
Node.js - Server Side Javascript
Node.js - Server Side Javascript
Matteo Napolitano
 
Node js dev day napoli 2016
Node js dev day napoli 2016
Michele Nasti
 

More Related Content

Viewers also liked (19)

Python base lezione 5
Python base lezione 5
Annalisa Vignoli
 
Python base lezione1
Python base lezione1
Annalisa Vignoli
 
ForDataScientist - Python matplotlib
ForDataScientist - Python matplotlib
Annalisa Vignoli
 
Python base lezione 2
Python base lezione 2
Annalisa Vignoli
 
Python base lezione 3
Python base lezione 3
Annalisa Vignoli
 
Python base lezione 4
Python base lezione 4
Annalisa Vignoli
 
ForDataScientist - Python advanced data
ForDataScientist - Python advanced data
Annalisa Vignoli
 
Web base - SVG
Web base - SVG
Annalisa Vignoli
 
WEB BASE - Una visione d'insieme delle tecnologie web
WEB BASE - Una visione d'insieme delle tecnologie web
Annalisa Vignoli
 
Oracle ebs leave management system
Oracle ebs leave management system
Roknuzzaman Suruz
 
ForDataScientist - Python base parte2
ForDataScientist - Python base parte2
Annalisa Vignoli
 
Dizajn za Facebook stranice - Tanja Dujmović
Dizajn za Facebook stranice - Tanja Dujmović
Tanja Dujmović
 
Celulita
Celulita
davidzbal
 
Sales Presentation 2-12-2016 TM
Sales Presentation 2-12-2016 TM
Travis Martin
 
Climate Change White Paper_Published
Climate Change White Paper_Published
Alita Ostapkovich
 
Requsition user menual
Requsition user menual
Roknuzzaman Suruz
 
Don Xem Quan Ao Thoi Trang Nu Moi Nhat Tai Tyty
Don Xem Quan Ao Thoi Trang Nu Moi Nhat Tai Tyty
Quân Đào
 
erald kolici portfolio
erald kolici portfolio
Erald Kolici
 
Fordatascientist - Tecnologie Web base
Fordatascientist - Tecnologie Web base
Annalisa Vignoli
 
ForDataScientist - Python matplotlib
ForDataScientist - Python matplotlib
Annalisa Vignoli
 
ForDataScientist - Python advanced data
ForDataScientist - Python advanced data
Annalisa Vignoli
 
WEB BASE - Una visione d'insieme delle tecnologie web
WEB BASE - Una visione d'insieme delle tecnologie web
Annalisa Vignoli
 
Oracle ebs leave management system
Oracle ebs leave management system
Roknuzzaman Suruz
 
ForDataScientist - Python base parte2
ForDataScientist - Python base parte2
Annalisa Vignoli
 
Dizajn za Facebook stranice - Tanja Dujmović
Dizajn za Facebook stranice - Tanja Dujmović
Tanja Dujmović
 
Sales Presentation 2-12-2016 TM
Sales Presentation 2-12-2016 TM
Travis Martin
 
Climate Change White Paper_Published
Climate Change White Paper_Published
Alita Ostapkovich
 
Don Xem Quan Ao Thoi Trang Nu Moi Nhat Tai Tyty
Don Xem Quan Ao Thoi Trang Nu Moi Nhat Tai Tyty
Quân Đào
 
erald kolici portfolio
erald kolici portfolio
Erald Kolici
 
Fordatascientist - Tecnologie Web base
Fordatascientist - Tecnologie Web base
Annalisa Vignoli
 

Similar to Web base - Javascript (Node.js): Elementi di base (20)

Corso base di Tecnologie WEB - Primi passi in javascript
Corso base di Tecnologie WEB - Primi passi in javascript
Studiabo
 
Node.js - Server Side Javascript
Node.js - Server Side Javascript
Matteo Napolitano
 
Node js dev day napoli 2016
Node js dev day napoli 2016
Michele Nasti
 
Intro to JavaScript
Intro to JavaScript
Alessandro Muraro
 
Node js: che cos'è e a che cosa serve?
Node js: che cos'è e a che cosa serve?
Flavius-Florin Harabor
 
node.js everywhere
node.js everywhere
Valerio Coltre
 
Javascript avanzato: sfruttare al massimo il web
Javascript avanzato: sfruttare al massimo il web
Roberto Messora
 
Roma linuxday 2013 - nodejs
Roma linuxday 2013 - nodejs
Claudio Mignanti
 
Node and the Cloud
Node and the Cloud
Luciano Colosio
 
Introduzione a JavaScript
Introduzione a JavaScript
Giovanni Buffa
 
Il Web orientato al futuro: Express, Angular e nodeJS
Il Web orientato al futuro: Express, Angular e nodeJS
Eugenio Minardi
 
Introduzione a JavaScript e jQuery (1/2)
Introduzione a JavaScript e jQuery (1/2)
Giuseppe Vizzari
 
Introduzione a node.js
Introduzione a node.js
Luciano Colosio
 
Introduzione a Node.js
Introduzione a Node.js
Michele Capra
 
Presentazione JavaScript
Presentazione JavaScript
KarimElS
 
Corso Javascript
Corso Javascript
Giuseppe Dell'Abate
 
node.js e Postgresql
node.js e Postgresql
Lucio Grenzi
 
corso web developer - Introduzione a Javascript
corso web developer - Introduzione a Javascript
Riccardo Piccioni
 
15 concetti importanti su javascript
15 concetti importanti su javascript
Giovanni Buffa
 
Introduzione a node: cenni storici ecc
Introduzione a node: cenni storici ecc
Luciano Colosio
 
Corso base di Tecnologie WEB - Primi passi in javascript
Corso base di Tecnologie WEB - Primi passi in javascript
Studiabo
 
Node.js - Server Side Javascript
Node.js - Server Side Javascript
Matteo Napolitano
 
Node js dev day napoli 2016
Node js dev day napoli 2016
Michele Nasti
 
Node js: che cos'è e a che cosa serve?
Node js: che cos'è e a che cosa serve?
Flavius-Florin Harabor
 
Javascript avanzato: sfruttare al massimo il web
Javascript avanzato: sfruttare al massimo il web
Roberto Messora
 
Roma linuxday 2013 - nodejs
Roma linuxday 2013 - nodejs
Claudio Mignanti
 
Introduzione a JavaScript
Introduzione a JavaScript
Giovanni Buffa
 
Il Web orientato al futuro: Express, Angular e nodeJS
Il Web orientato al futuro: Express, Angular e nodeJS
Eugenio Minardi
 
Introduzione a JavaScript e jQuery (1/2)
Introduzione a JavaScript e jQuery (1/2)
Giuseppe Vizzari
 
Introduzione a Node.js
Introduzione a Node.js
Michele Capra
 
Presentazione JavaScript
Presentazione JavaScript
KarimElS
 
node.js e Postgresql
node.js e Postgresql
Lucio Grenzi
 
corso web developer - Introduzione a Javascript
corso web developer - Introduzione a Javascript
Riccardo Piccioni
 
15 concetti importanti su javascript
15 concetti importanti su javascript
Giovanni Buffa
 
Introduzione a node: cenni storici ecc
Introduzione a node: cenni storici ecc
Luciano Colosio
 
Ad

More from Annalisa Vignoli (6)

Presentazione Corsi FDS
Presentazione Corsi FDS
Annalisa Vignoli
 
Presentazione Ulisse - Rame
Presentazione Ulisse - Rame
Annalisa Vignoli
 
Presentazione Ulisse - Acciaio
Presentazione Ulisse - Acciaio
Annalisa Vignoli
 
Fordascientist - Python reportlab
Fordascientist - Python reportlab
Annalisa Vignoli
 
ForDataScientist - Python base parte1
ForDataScientist - Python base parte1
Annalisa Vignoli
 
abstract_tesi
abstract_tesi
Annalisa Vignoli
 
Presentazione Ulisse - Rame
Presentazione Ulisse - Rame
Annalisa Vignoli
 
Presentazione Ulisse - Acciaio
Presentazione Ulisse - Acciaio
Annalisa Vignoli
 
Fordascientist - Python reportlab
Fordascientist - Python reportlab
Annalisa Vignoli
 
ForDataScientist - Python base parte1
ForDataScientist - Python base parte1
Annalisa Vignoli
 
Ad

Recently uploaded (19)

Jacobs Legacy A Genetic View Of Jewish History David B Goldstein
Jacobs Legacy A Genetic View Of Jewish History David B Goldstein
tafgtss2769
 
Regole di Grammatica Italiana classe quarta.ppsx
Regole di Grammatica Italiana classe quarta.ppsx
Noto6
 
Catalogo WISE-ING 2025 - Seconda Competenza
Catalogo WISE-ING 2025 - Seconda Competenza
Wise Ing
 
Blueberries A Century Of Research Gough Robert Edward Korcak
Blueberries A Century Of Research Gough Robert Edward Korcak
aqjulpbi5818
 
Fotovoltaico vs Nucleare qual'è la migliore fonte di energia
Fotovoltaico vs Nucleare qual'è la migliore fonte di energia
paolofvesco
 
30 ĐỀ THI HỌC SINH GIỎI VẬT LÍ 12 – TUYỂN CHỌN TỪ CÁC TRƯỜNG THPT TRÊN TOÀN Q...
30 ĐỀ THI HỌC SINH GIỎI VẬT LÍ 12 – TUYỂN CHỌN TỪ CÁC TRƯỜNG THPT TRÊN TOÀN Q...
Nguyen Thanh Tu Collection
 
Czech An Essential Grammar Bilingual James Naughton
Czech An Essential Grammar Bilingual James Naughton
gkomdigywi4802
 
The Cosmos Astronomy In The New Millennium Paperback Jay M Pasachoff Alex Fil...
The Cosmos Astronomy In The New Millennium Paperback Jay M Pasachoff Alex Fil...
nypanokeim
 
PENSIERI INUTILI essay about democracy and identity
PENSIERI INUTILI essay about democracy and identity
venetianlanguage
 
Club del libro Deserto dei Tartari
Club del libro Deserto dei Tartari
paolofvesco
 
Mastering Ibm I Security A Modern Stepbystep Guide Carol Woodbury
Mastering Ibm I Security A Modern Stepbystep Guide Carol Woodbury
qkznysd8395
 
I-miei-PCTO-Un-percorso-tra-Scienza-e-Cultura.pdf
I-miei-PCTO-Un-percorso-tra-Scienza-e-Cultura.pdf
ssuserd66503
 
eNERGIZER DEMO teaching dance performance.pptx
eNERGIZER DEMO teaching dance performance.pptx
louellarepollo
 
Media Technologies 1st Edition Tarleton Gillespie
Media Technologies 1st Edition Tarleton Gillespie
qcspccqs905
 
Contemporary Research On Business And Management Siska Noviaristanti
Contemporary Research On Business And Management Siska Noviaristanti
xybnhst3272
 
Capolavorooooooooooooooooooooooooooo.pdf
Capolavorooooooooooooooooooooooooooo.pdf
ssuserd66503
 
Experiencing MIS 5th Edition Kroenke Test Bank
Experiencing MIS 5th Edition Kroenke Test Bank
twyoymgar4752
 
Dormancy in Aquatic Organisms Theory Human Use and Modeling Victor R. Alekseev
Dormancy in Aquatic Organisms Theory Human Use and Modeling Victor R. Alekseev
zjqcibg889
 
BỘ ĐỀ KIỂM TRA THEO TỪNG CHƯƠNG HÓA HỌC 10 - THEO CHƯƠNG TRÌNH MỚI CỦA BỘ GIÁ...
BỘ ĐỀ KIỂM TRA THEO TỪNG CHƯƠNG HÓA HỌC 10 - THEO CHƯƠNG TRÌNH MỚI CỦA BỘ GIÁ...
Nguyen Thanh Tu Collection
 
Jacobs Legacy A Genetic View Of Jewish History David B Goldstein
Jacobs Legacy A Genetic View Of Jewish History David B Goldstein
tafgtss2769
 
Regole di Grammatica Italiana classe quarta.ppsx
Regole di Grammatica Italiana classe quarta.ppsx
Noto6
 
Catalogo WISE-ING 2025 - Seconda Competenza
Catalogo WISE-ING 2025 - Seconda Competenza
Wise Ing
 
Blueberries A Century Of Research Gough Robert Edward Korcak
Blueberries A Century Of Research Gough Robert Edward Korcak
aqjulpbi5818
 
Fotovoltaico vs Nucleare qual'è la migliore fonte di energia
Fotovoltaico vs Nucleare qual'è la migliore fonte di energia
paolofvesco
 
30 ĐỀ THI HỌC SINH GIỎI VẬT LÍ 12 – TUYỂN CHỌN TỪ CÁC TRƯỜNG THPT TRÊN TOÀN Q...
30 ĐỀ THI HỌC SINH GIỎI VẬT LÍ 12 – TUYỂN CHỌN TỪ CÁC TRƯỜNG THPT TRÊN TOÀN Q...
Nguyen Thanh Tu Collection
 
Czech An Essential Grammar Bilingual James Naughton
Czech An Essential Grammar Bilingual James Naughton
gkomdigywi4802
 
The Cosmos Astronomy In The New Millennium Paperback Jay M Pasachoff Alex Fil...
The Cosmos Astronomy In The New Millennium Paperback Jay M Pasachoff Alex Fil...
nypanokeim
 
PENSIERI INUTILI essay about democracy and identity
PENSIERI INUTILI essay about democracy and identity
venetianlanguage
 
Club del libro Deserto dei Tartari
Club del libro Deserto dei Tartari
paolofvesco
 
Mastering Ibm I Security A Modern Stepbystep Guide Carol Woodbury
Mastering Ibm I Security A Modern Stepbystep Guide Carol Woodbury
qkznysd8395
 
I-miei-PCTO-Un-percorso-tra-Scienza-e-Cultura.pdf
I-miei-PCTO-Un-percorso-tra-Scienza-e-Cultura.pdf
ssuserd66503
 
eNERGIZER DEMO teaching dance performance.pptx
eNERGIZER DEMO teaching dance performance.pptx
louellarepollo
 
Media Technologies 1st Edition Tarleton Gillespie
Media Technologies 1st Edition Tarleton Gillespie
qcspccqs905
 
Contemporary Research On Business And Management Siska Noviaristanti
Contemporary Research On Business And Management Siska Noviaristanti
xybnhst3272
 
Capolavorooooooooooooooooooooooooooo.pdf
Capolavorooooooooooooooooooooooooooo.pdf
ssuserd66503
 
Experiencing MIS 5th Edition Kroenke Test Bank
Experiencing MIS 5th Edition Kroenke Test Bank
twyoymgar4752
 
Dormancy in Aquatic Organisms Theory Human Use and Modeling Victor R. Alekseev
Dormancy in Aquatic Organisms Theory Human Use and Modeling Victor R. Alekseev
zjqcibg889
 
BỘ ĐỀ KIỂM TRA THEO TỪNG CHƯƠNG HÓA HỌC 10 - THEO CHƯƠNG TRÌNH MỚI CỦA BỘ GIÁ...
BỘ ĐỀ KIỂM TRA THEO TỪNG CHƯƠNG HÓA HỌC 10 - THEO CHƯƠNG TRÌNH MỚI CỦA BỘ GIÁ...
Nguyen Thanh Tu Collection
 

Web base - Javascript (Node.js): Elementi di base

  • 1. TECNOLOGIE WEB BASE Javascript (Node.js): elementi di base
  • 2. Programmi sincroni e asincroni Programmi sincroni Una istruzione viene eseguita solo dopo che è terminata l’esecuzione dell’istruzione precedente. Programmi asincroni Una istruzione può essere eseguita prima che sia terminata l’esecuzione dell’istruzione precedente. PYTHON JAVASCRIPT Nella interrelazione con il DOM o con un server
  • 3. Javascript e Node.js Node.js è un versione di javascript che può essere eseguita dal server. Per fare i primi passi in javascript, utilizzeremo la versione node.js eseguita da server che, non interagendo con il dom, non pone problemi di esecuzione asincrona delle istruzioni.
  • 4. var MESS MESS= 'Hello World!'; VARIABILI Javascript Assegnazione Python Assegnazione MESS=’Hello World’ dichiarazione
  • 5. STRINGHE Javascript (string/ ‘’) Python (str) var STR, STR1, STR2; STR1=’Hello ’; STR2=’world’; STR =STR1+STR2; STR.replace(‘Hello’,’Wonderfull’); STR.lenght typeof STR STR.constructor() STR1=’Hello ’; STR2=’world’; STR =STR1+STR2; STR.replace(‘Hello’,’Wonderfull’); len(STR) type(STR)
  • 6. Numeri Javascript (number/ 0) Python (int, float) var NUM1, NUM2, NUM3; NUM1=5; NUM2=3.66; NUM3=NUM1/NUM2; NUM3.toFixed() NUM3.toString() typeof NUM3 NUM3.constructor() NUM1=5; NUM2=3.66; NUM3=NUM1/NUM2; int(round(NUM3,0)) str(NUM3) type(NUM3)
  • 7. Liste Javascript (object/ [ ]) Python (list) var LIS1, LIS2; LIS1=[10,12,52,64,37,'a','b'] LIS2=[7,55,44] LIS1+LIS2 string LIS1*2 NaN LIS1.concat(LIS2) LIS1[0] LIS1[5] LIS1.slice(0,3) typeof LIS1 LIS1.constructor() LIS1=[10,12,52,64,37,'a','b'] LIS2=[7,55,44] LIS1+LIS2 concatenazione LIS1*2 LIS1+LIS1 LIS1+LIS2 LIS1[0] LIS1[5] LIS1[0:3] type(LIS1)
  • 8. Dizionari Javascript (object/ { }) Python (dict) var DIZ1, DIZ2; DIZ1={'DEU':100, 'FRA':150 } DIZ2={'ITA':50, 'ESP':500} DIZ1[‘DEU’] typeof DIZ1 DIZ1.constructor() DIZ1={'DEU':100, 'FRA':150 } DIZ2={'ITA':50, 'ESP':500} DIZ1[‘DEU’] type(DIZ1)
  • 9. Blocco if Javascript Python var V1=20; var RIS=''; if (V1<5) {RIS="V1 is <=5";} else if (V1<15) {RIS="V1 is ranging 5-15";} else {RIS="V1 is >=15";} V1=20 if V1<5: RIS="V1 is <=5" elif V1<15: RIS="V1 is ranging 5-15" else: RIS="V1 is >=15";
  • 10. Ciclo for Javascript Python var text='' for (var i=0; i<10; i=i+1) {text = text +" " + i} text='' for i in range(0,10): text = text +" " + str(i)
  • 11. Ciclo while Javascript Python var i=0; var text='' while (i < 10) {text = text +" " + i; i=i+1;} text='' i=0 while True: text = text +" " + str(i) i=i+1 if i >= 10: break
  • 12. TECNOLOGIE WEB BASE Javascript e Node.js: oggetti globali
  • 13. Oggetti globali javascript e Node.js javascript Node.js console console E’ un oggetto globale che fornisce una interfaccia di debug. console.log(‘......’) console.log(‘.....’) Scrive la stringa passata come argomento nello standard output L’oggetto console di Node.js non replica perfettamente l’oggetto console dei principali browser. Ad esempio non ha implementato il metodo .clean() per cancellare il contenuto dello standard output
  • 14. Moduli base Node.js e python Node.js Python os sys path process os var os=require('os'); var sys=require('sys'); var path=require('path'); import os import sys sys process.env.PATH sys.path path.dirname() path.join('...','...’') process.cwd(); os.hostname() os.arch() process.pid os.path.curdir os.sys.join(‘......’, ‘.......’) os.path.abspath(os.path.curdir) os.uname() os.getpid()
  • 17. Funzioni: tramite dichiarazione Javascript Python function Sum(N1,N2){ // This function does sum of two number console.log('Sum is running') S=N1+N2; return S } var N; N=Sum(12,74); def Sum(N1,N2): ‘’’This function does sum of two number’’’ print('Sum is running') S=N1+N2; return S N=Sum(12,74);
  • 18. Funzioni: tramite assegnazione Javascript var Sum= function (N1,N2){ // This function does sum of two number console.log('Sum is running') S=N1+N2; return S } var N; N=Sum(12,74); dal punto di vista funzionale, la creazione di una funzione tramite dichiarazione è equivalente alla creazione tramite assegnazione. La creazione tramite assegnazione può essere utile in termini di “chiarezza del codice” quando si vuole utilizzare la funzione come input di un’altra funzione. Ad esempio var SAY=function(WORD) {console.log(WORD);} function Exec(someF, VAL) {someF(VAL);} Exec(SAY, "Hello");
  • 19. Funzioni: dichiarazione e assegnazione Le funzioni create tramite dichiarazione sono caricate in memoria centrale prima di processare le altre istruzioni. Una funzione creata tramite dichiarazione può essere posizionata anche dopo la sua chiamata.
  • 20. Scope delle variabili interne ad una funzione Javascript Python possono essere sia locali che globali. Sono locali se sono create tramite il costruttore ‘var’. Sono globali se sono create tramite una semplice assegnazione. una variabile creata all’interno di una funzione è sempre locale, a meno che essa prima di essere creata non sia stata definita come ‘global’