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

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

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

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

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

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

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

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

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