Scrivere un programma in JavaScript per il browser è un po’ diverso dallo scrivere un programma JavaScript per Node.js. In entrambi i casi il programma si può dividere in moduli indipendenti, tuttavia NodeJS potrebbe usare dei moduli (detti di tipo CommonJS) di tipo diverso da quelli usati dal browser (detti di tipo ES6).
Category: linguaggio javascript
Node.js (2)
Node.js (1)
In passato Javascript era un linguaggio solo per browser (lato client), ma grazie a Node.js si potrebbe usare anche per realizzare script per la shell. Node.js è disponibile in diverse versioni. Ad esempio:
- Node.js v.16.x LTS Gallium, mantenuto fino al 2024-04-30
- Node.js v.18.x LTS Hydrogen, mantenuto fino al 2025-04-30
Per la sua installazione su Linux si potrebbe usare un gestore dei pacchetti, ad esempio, come: apt, rpm, pacman, yum, homebrew, ecc.,
L’articolo per configurare un ambiente iOS/macOS è stato separato1 .
- https://www.cancellino.org/2023/01/node-js-per-macos/ [↩]
Linguaggio JavaScript (2)
Per rendere il linguaggio privo delle parte “legacy”, si può utilizzare nella prima riga la seguente direttiva:
"use strict";
Definire le funzioni
Le funzioni in JavaScript possono essere definite per mezzo di quattro tecniche:
In JavaScript esistono tre parole chiave per definire reference, variabili, oggetti e/o funzioni:
Strategy pattern
Ricordiamo subito un principio della OOP
Preferire la composizione all’ereditarietà
(oft-quoted maxim of OOP)
Lo Strategy pattern viene usato per evitare l’ereditarietà a compile-time
Funzioni e closure
In JavaScript _non_ esistono namespace, quindi potrebbe sorgere il problema della sovrapposizione dei nomi delle variabili (shadowing) e/o della loro visibilità.
Una possibilie soluzione consiste nel proteggere queste variabili evitando di usare il namespace globale e, usare, invece, una funzione come contenitore che possa proteggere la visibilità di queste entità.
In questo caso, in JavaScript, si potrebbe osservare dentro una funzione (usata come namespace) la definizione delle variabili locali e di altre funzioni annidate che vengono usate per restituire le precedenti variabili o altre funzioni.
Design pattern
Spesso il programmatore si trova di fronte a problemi simili a quelli che ha già risolto in precedenza, la cui soluzione è quindi ricorrente.
Linguaggio JavaScript (1)
Le numerose versioni del linguaggio JavaScript che si sono susseguite nel tempo hanno apportato numerosi cambiamenti. Oggi non tutti gli utenti usano lo stesso browser (oppure la stessa versione) e per questo motivo nascono problemi di compatibilità con i diversi motori di rendering (Vedere Babel ).