Node.js. REPL e oltre. by Stefano Burigat

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Node.js. REPL e oltre. by Stefano Burigat"

Transcript

1 Node.js REPL e oltre by Stefano Burigat

2 Cos'è REPL? REPL (Read-Eval-Print-Loop) è un ambiente interattivo a riga di comando che permette di scrivere codice node ed eseguirlo istruzione per istruzione. REPL si attiva scrivendo node da un prompt dei comandi. REPL può essere utilizzato anche per scrivere ed eseguire codice puramente JavaScript.

3 Esempi Scrivete separatamente in REPL ognuno degli esempi seguenti (senza commenti e premendo INVIO al termine) e osservate il risultato (in tutte le slide successive, queste istruzioni sono sottintese). a = 2; b = "Node"; c = true; d = ['a', 'b', 'c']; var e = 23.4; //??

4 Carattere _ Il carattere _ (underscore) permette di accedere all'ultimo risultato ottenuto e sfruttarlo nelle istruzioni successive. Tramite _ è possibile accedere anche a proprietà e funzioni di un oggetto. var a = 2; _++; // come mai? ['a','b','c']; _.length; _.tostring();

5 Altre funzionalità Tutto ciò che scriviamo viene ricordato da REPL e può essere acceduto tramite freccia su e freccia giù. E' anche possibile utilizzare il tasto TAB per autocompletare parole chiave, funzioni e variabili. CTRL-C permette di uscire dal comando corrente, CTRL-D da REPL. Se si termina una riga con una parentesi (tonda, graffa, quadra), REPL consente di continuare la scrittura sulla riga successiva. function add(a,b){ return (a+b) } add(3,7);

6 Utilizzo di REPL REPL è molto comodo per testare frammenti di codice ma soprattutto per ispezionare oggetti, identificandone le proprietà. console; global; o = new Object(); o.name = "Test"; o;

7 Comandi nativi REPL supporta un certo numero di comandi nativi, la cui lista si può vedere inserendo il comando.help (con il punto davanti). I comandi più utili sono.save che permette di salvare la sessione corrente (l'input inserito dall'utente fino a quel momento), e.load che carica un file JavaScript nella sessione corrente. // partendo da una sessione pulita var numeri = [2,4,6]; numeri.foreach(function(value) { console.log(value); });.save test.js // uscire da REPL e rientrare.load test.js

8 Esercizi Utilizzate REPL per eseguire i seguenti frammenti di codice JavaScript (uno alla volta). Cercate di capire perchè ottenete quei risultati. alert("hello!"); "La somma di 5 e 15 è: " ; // come correggerlo? "3" + 1; "3" - 1; var nomi = Array("Tizio","Caio"); var numeri = Array(3,7,5); var nomi = Array("Tizio"); var numeri = Array(3);

9 var a = new Number; a == 0; // due uguale var a = new String; a == ""; var a = new Object; a == {}; var a = new Array; a == []; var a = {}; a == {}; var a = []; a == []; Esercizi

10 Esercizi typeof NaN; Infinity === 1/0; // tre uguale === 0.3; NaN === NaN; "foo" + + "bar"; typeof null; null instanceof Object; null == false;!null;

11 Esercizi var result = "Brick" < "alphabet"; var result = "23" < "3"; var result = "23" < 3; var result = "a" < 3; var result1 = NaN < 3; var result2 = NaN >= 3; parseint('06'); parseint('08')

12 Esercizi 3 == "3"; true == 'true'; (true + 1) === 2; (true + true) === 2; true === 2; true === 1; 3 > 2 > 1; "hello".touppercase(); 3.toString();

13 Esercizi var f = function() { }; f.foo = 'foo'; f.name; f.name = 'foo'; f.name; var f = function myfunction() { }; f.name; var a = 8; var somefunc = function(){ console.log(a); var a = 8; }; somefunc();

14 Oltre REPL Per quanto REPL sia utile, non è molto comodo da usare. Il modo più semplice per scrivere programmi node è scrivere il codice con un editor di testo ed eseguire il file creato tramite il comando node seguito dal nome del file. Scrivete su un file test.js il codice seguente ed eseguitelo. console.log("hello Node!");

15 Esercizi Scrivete in file separati i due frammenti di codice seguenti ed eseguiteli. Cosa succede? Perchè? sum(10,10); function sum(num1, num2){ return num1 + num2; } sum(10,10); var sum = function(num1, num2){ return num1 + num2; };

16 Esercizi Create una funzione che somma i primi numeri e calcolatene il tempo di esecuzione (sfruttate la funzione Date.now()). Create un oggetto persona dotato delle proprietà nome, età, occupazione e di una funzione che stampa il nome. Provate tre modalità di creazione diverse: 1) come istanza del tipo Object, 2) come istanza del tipo Object utilizzando la notazione letterale, 3) come istanza di un tipo Persona appositamente definito.

JavaScript. crash course. by Stefano Burigat

JavaScript. crash course. by Stefano Burigat JavaScript crash course by Stefano Burigat Introduzione ECMAScript (no DOM e BOM, no ) Sintassi simile a Java Variabili definite tramite var, loosely typed, operatore comma (,) per separare definizioni

Dettagli

Struttura di un programma Java

Struttura di un programma Java Struttura di un programma Java Un programma in Java è un insieme di dichiarazioni di classi. Una classe non può contenere direttamente delle istruzioni, ma può contenere la dichiarazione di metodi, che

Dettagli

Strumenti per lo sviluppo del software

Strumenti per lo sviluppo del software Lo sviluppo del software Strumenti per lo sviluppo del software Lo sviluppo del software è l attività centrale del progetto e ha lo scopo di produrre il codice sorgente che, una volta compilato e messo

Dettagli

1 JavaScript: generalità

1 JavaScript: generalità 1 JavaScript: generalità JavaScript (di seguito abbreviato in JS) è un linguaggio di scripting (linguaggio usato per definire degli script, dei piccoli programmi di utilità, composti anche di sole poche

Dettagli

Unità 1 Introduzione al sistema MAPLE

Unità 1 Introduzione al sistema MAPLE Unità 1 Introduzione al sistema MAPLE MAPLE come una calcolatrice > 1+2; > 1+1: 2+32; # Il simbolo : inibisce l'output Attenzione! > 7*8 > 7*8; 8/4; > sqrt(25); # sqrt = radice quadrata; > sqrt(%); Il

Dettagli

Corso di Web Programming

Corso di Web Programming Corso di Web Programming 11. PHP - Complementi Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/ milazzo milazzo di.unipi.it Corso di Laurea in Informatica Applicata

Dettagli

Connessione ad internet

Connessione ad internet Introduzione al C++ Connessione ad internet Istruzioni per la connessione internet: - una volta connessi, aprire un browser (firefox) - in Modifica/preferenze/avanzate/rete/impostazioni - attivare la modalità

Dettagli

CORSO DI PROGRAMMAZIONE

CORSO DI PROGRAMMAZIONE ISTITUTO TECNICO INDUSTRIALE G. M. ANGIOY SASSARI CORSO DI PROGRAMMAZIONE OBJECT ORIENTED PROGRAMMING: I METODI DISPENSA 15.02 15-02_OOP_Metodi_[15] Questa dispensa è rilasciata sotto la licenza Creative

Dettagli

Laboratorio Algoritmi 2014 Secondo Semestre

Laboratorio Algoritmi 2014 Secondo Semestre Laboratorio Algoritmi 2014 Secondo Semestre Lunedì 14:30 17:30 Aula 2. Ricevimento: inviare e-mail a frasca@di.unimi.it. 44 ore (9 CFU) Linguaggio di programmazione: MATLAB Esame : progetto e/o prova scritta

Dettagli

Concetti fondamentali

Concetti fondamentali Node.js Concetti fondamentali by Stefano Burigat Esecuzione asincrona Quasi tutte le funzioni in node vengono eseguite in modo asincrono (a tal punto che molte funzioni hanno una versione sincrona che

Dettagli

POLITECNICO DI BARI Corso di Laurea in Ingegneria MECCANICA Corso di FONDAMENTI DI INFORMATICA

POLITECNICO DI BARI Corso di Laurea in Ingegneria MECCANICA Corso di FONDAMENTI DI INFORMATICA POLITECNICO DI BARI Corso di Laurea in Ingegneria MECCANICA Corso di FONDAMENTI DI INFORMATICA ACCESSO ALL AMBIENTE DI PROGRAMMAZIONE Microsoft Visual C++ è sufficiente cliccare sul pulsante di Windows,

Dettagli

Corso Introduttivo all utilizzo di R! Prof.ssa D.F. Iezzi stella.iezzi@uniroma2.it

Corso Introduttivo all utilizzo di R! Prof.ssa D.F. Iezzi stella.iezzi@uniroma2.it Corso Introduttivo all utilizzo di R! Prof.ssa D.F. Iezzi stella.iezzi@uniroma2.it Il software R q Il software R è distribuito gratuitamente come software Open Source con licenza GPL (General Public License)

Dettagli

Usare Python in Linux

Usare Python in Linux Università di Bologna 24 febbraio 2012 Outline 1 2 Outline 1 2 Cos è? Un sistema operativo Open Source; uno dei sistemi operativi dominanti in ambito server, ma utilizzabile su desktop, notebook, netbook,...

Dettagli

Esercitazione Informatica I AA 2012-2013. Nicola Paoletti

Esercitazione Informatica I AA 2012-2013. Nicola Paoletti Esercitazione Informatica I AA 2012-2013 Nicola Paoletti 4 Gigno 2013 2 Conversioni Effettuare le seguenti conversioni, tenendo conto del numero di bit con cui si rappresenta il numero da convertire/convertito.

Dettagli

Introduzione al Python

Introduzione al Python Andrea Passerini passerini@disi.unitn.it Informatica Caratteristiche procedurale si specifica la procedura da eseguire sui dati strutturato concetto di visibililtà delle variabili orientato agli oggetti

Dettagli

Progettazione del Software A.A.2008/09

Progettazione del Software A.A.2008/09 Laurea in Ing. Informatica ed Ing. dell Informazione Sede di latina Progettazione del Software A.A.2008/09 Domenico Lembo* Dipartimento di Informatica e Sistemistica A. Ruberti SAPIENZA Università di Roma

Dettagli

Utilizzo del linguaggio Basic utilizzando l interfaccia di Excel Silvia Patacchini

Utilizzo del linguaggio Basic utilizzando l interfaccia di Excel Silvia Patacchini Introduzione all utilizzo di Visual Basic for Application Utilizzo del linguaggio Basic utilizzando l interfaccia di Excel Silvia Patacchini PROGRAMMAZIONE Insieme delle attività da svolgersi per creare

Dettagli

Introduzione allo sviluppo Web. Studium Generale, a.a. 2013-2014, II semestre

Introduzione allo sviluppo Web. Studium Generale, a.a. 2013-2014, II semestre Introduzione allo sviluppo Web Studium Generale, a.a. 2013-2014, II semestre 1 Contatto Daniel Graziotin daniel.graziotin@unibz.it http://ineed.coffee/teaching/ introduzione-allo-sviluppo-web 2 Esame Esame

Dettagli

QUEUE : considerazioni. QUEUE : considerazioni. QUEUE : esempio. QUEUE : esempio

QUEUE : considerazioni. QUEUE : considerazioni. QUEUE : esempio. QUEUE : esempio QUEUE : considerazioni QUEUE : considerazioni Si è realizzata una struttura dati complessa utilizzandone una primitiva, l array. Il pregio di tale implementazione è il basso costo computazionale, mentre

Dettagli

Introduzione a ROOT. 1. Informazioni generali

Introduzione a ROOT. 1. Informazioni generali Introduzione a ROOT 1. Informazioni generali ROOT è un ambiente visualizzazione e trattamento dati interattivo sviluppato al CERN (si veda il sito ufficiale http://root.cern.ch interamente sviluppato in

Dettagli

Synchronized (ancora)

Synchronized (ancora) Synchronized (ancora) Riscriviamo l esempio di prima. Usiamo una struttura modulare, con una classe Notificatore che ha opportuni metodi. La classe ha due campi privati, la lista buftext e un suo thread.

Dettagli

Informatica B. Sezione D. Scuola di Ingegneria Industriale Laurea in Ingegneria Energetica Laurea in Ingegneria Meccanica

Informatica B. Sezione D. Scuola di Ingegneria Industriale Laurea in Ingegneria Energetica Laurea in Ingegneria Meccanica Scuola di Ingegneria Industriale Laurea in Ingegneria Energetica Laurea in Ingegneria Meccanica Dipartimento di Elettronica, Informazione e Bioingegneria Informatica B Sezione D Franchi Alessio Mauro,

Dettagli

Javascript. Linguaggi Corso M-Z - Laurea in Ingegneria Informatica A.A. 2009-2010. - lezione 14 -

Javascript. Linguaggi Corso M-Z - Laurea in Ingegneria Informatica A.A. 2009-2010. - lezione 14 - Linguaggi Corso M-Z - Laurea in Ingegneria Informatica A.A. 2009-2010 Alessandro Longheu http://www.diit.unict.it/users/alongheu alessandro.longheu@diit.unict.it - lezione 14-1 Schema delle lezioni Introduzione

Dettagli

TRUCCHI CON LA TASTIERA

TRUCCHI CON LA TASTIERA TRUCCHI CON LA TASTIERA Ecco qui di seguito molti trucchi che ho provato (e che funzionano!) utilizzando esclusivamente la tastiera (al posto del mouse!). Prima di tutto... avete davanti una tastiera grande

Dettagli

R. Focardi 2002 Laboratorio di Ingegneria del Software Slide 1. Applicazioni = programmi stand-alone

R. Focardi 2002 Laboratorio di Ingegneria del Software Slide 1. Applicazioni = programmi stand-alone Il linguaggio Java Nato nel maggio 95 (James Gosling & al.) Orientato ad oggetti, basato sulle classi, concorrente Fortemente tipato: distinzione chiara tra errori statici ed errori dinamici Ad alto livello:

Dettagli

HTML. Usare il seguente HTML per i primi tre esercizi (che, si noti, al momento restituisce un errore JavaScript):

HTML. Usare il seguente HTML per i primi tre esercizi (che, si noti, al momento restituisce un errore JavaScript): HTML Usare il seguente HTML per i primi tre esercizi (che, si noti, al momento restituisce un errore JavaScript): prove Javascript

Dettagli

RISOLUTORE AUTOMATICO PER SUDOKU

RISOLUTORE AUTOMATICO PER SUDOKU RISOLUTORE AUTOMATICO PER SUDOKU Progetto Prolog - Pierluigi Tresoldi 609618 INDICE 1.STORIA DEL SUDOKU 2.REGOLE DEL GIOCO 3.PROGRAMMAZIONE CON VINCOLI 4.COMANDI DEL PROGRAMMA 5.ESEMPI 1. STORIA DEL SUDOKU

Dettagli

Script PHP per Configurare gli Accessi ad Internet di un router CISCO

Script PHP per Configurare gli Accessi ad Internet di un router CISCO Script PHP per Configurare gli Accessi ad Internet di un router CISCO Autore Roberto Bandiera 9 dicembre 2014 Obiettivo: scrivere uno script PHP per poter controllare da remoto la configurazione di un

Dettagli

JAVASCRIPT. Tale file è associato alla pagina web mediante il tag