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

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

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

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

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

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

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

Comandi filtro: sed. Se non si specificano azioni, sed stampa sullo standard output le linee in input, lasciandole inalterate.

Comandi filtro: sed. Se non si specificano azioni, sed stampa sullo standard output le linee in input, lasciandole inalterate. Comandi filtro: sed Il nome del comando sed sta per Stream EDitor e la sua funzione è quella di permettere di editare il testo passato da un comando ad un altro in una pipeline. Ciò è molto utile perché

Dettagli

Automatizzare i compiti ripetitivi. I file batch. File batch (1) File batch (2) Visualizzazione (2) Visualizzazione

Automatizzare i compiti ripetitivi. I file batch. File batch (1) File batch (2) Visualizzazione (2) Visualizzazione Automatizzare i compiti ripetitivi I file batch Anno accademico 2000-01 1 Spesso capita di dover eseguire ripetutatmente una data sequenza di comandi Introdurli uno a uno da tastiera è un processo lento

Dettagli

Esercizi di JavaScript

Esercizi di JavaScript Esercizi di JavaScript JavaScript JavaScript é un linguaggio di programmazione interpretato e leggero, creato dalla Netscape. E' presente a patire da Netscape 2 in tutti i browser ed é dunque il linguaggio

Dettagli

Syllabus (estratto) Foglio elettronico. Excel. Open office - Office. Principio e funzionamento 26/11/2012. A. Ferrari

Syllabus (estratto) Foglio elettronico. Excel. Open office - Office. Principio e funzionamento 26/11/2012. A. Ferrari Foglio elettronico A. Ferrari Syllabus (estratto) Lavorare con i fogli elettronici e salvarli in diversi formati. Inserire dati nelle celle e applicare modalità appropriate per creare elenchi. Selezionare,

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

l Editor vi vi (visual editor) è stato scritto per essere utilizzabile con qualsiasi tipo di terminale.

l Editor vi vi (visual editor) è stato scritto per essere utilizzabile con qualsiasi tipo di terminale. l Editor vi Negli ambienti Unix esistono molti editor di testo diversi; tuttavia vi è l unico che siamo sicuri di trovare in qualsiasi variante di Unix. vi (visual editor) è stato scritto per essere utilizzabile

Dettagli

Laboratorio di Informatica

Laboratorio di Informatica Laboratorio di Informatica Introduzione a Python Dottore Paolo Parisen Toldin - parisent@cs.unibo.it Argomenti trattati Che cosa è python Variabili Assegnazione Condizionale Iterazione in una lista di

Dettagli

Laboratorio di Programmazione 1. Docente: dr. Damiano Macedonio Lezione 18 31/03/2014

Laboratorio di Programmazione 1. Docente: dr. Damiano Macedonio Lezione 18 31/03/2014 Laboratorio di Programmazione 1 1 Docente: dr. Damiano Macedonio Lezione 18 31/03/2014 Funzioni: Dichiarazione e Definizione La dichiarazione di una funzione serve a comunicare al compilatore quali sono

Dettagli

Appunti del corso di Informatica 1. 6 Introduzione al linguaggio C

Appunti del corso di Informatica 1. 6 Introduzione al linguaggio C Università di Roma Tre Dipartimento di Matematica e Fisica Corso di Laurea in Matematica Appunti del corso di Informatica 1 (IN110 Fondamenti) 6 Introduzione al linguaggio C Marco Liverani (liverani@mat.uniroma3.it)

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

Introduzione allo Scilab Parte 3: funzioni; vettori.

Introduzione allo Scilab Parte 3: funzioni; vettori. Introduzione allo Scilab Parte 3: funzioni; vettori. Felice Iavernaro Dipartimento di Matematica Università di Bari http://dm.uniba.it/ iavernaro felix@dm.uniba.it 13 Giugno 2007 Felice Iavernaro (Univ.

Dettagli

Struttura logica di un programma

Struttura logica di un programma Struttura logica di un programma Tutti i programmi per computer prevedono tre operazioni principali: l input di dati (cioè l inserimento delle informazioni da elaborare) il calcolo dei risultati cercati

Dettagli

Calcolare il massimo di una lista

Calcolare il massimo di una lista Calcolare il massimo di una lista Ieri abbiamo imparato a calcolare il massimo di una lista predefinita: lista = [4,24,-89,81,3,0,-12,31] max = lista[0] # questo e' un commento: primo elemento di lista

Dettagli

Informatica B. Breve introduzione all ambiente di programmazione. Politecnico di Milano IV Facoltà di Ingegneria 2003

Informatica B. Breve introduzione all ambiente di programmazione. Politecnico di Milano IV Facoltà di Ingegneria 2003 Informatica B Breve introduzione all ambiente di programmazione Politecnico di Milano IV Facoltà di Ingegneria 2003 Dal sorgente all eseguibile File Sorgente.C Compilatore File Oggetto.OBJ Librerie.lib

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

13 - Gestione della Memoria nella Programmazione Orientata agli Oggetti

13 - Gestione della Memoria nella Programmazione Orientata agli Oggetti 13 - Gestione della Memoria nella Programmazione Orientata agli Oggetti Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/

Dettagli

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