Categories
async moduli Node.js npm

Node.js (4)

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).

Categories
async linguaggio javascript Node.js npm package,json

Node.js (2)

Nel precedente post su Node.js abbiamo:

  • installato Node.js e npm usando nvm (Node Version Manager)
  • provato un esempio d’uso di Node.js

Ora proveremo un esempio d’uso di npm (Node Package Manager) per aggiungere una dipendenza al progetto.

Categories
linguaggio javascript Node.js

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 .

  1. https://www.cancellino.org/2023/01/node-js-per-macos/ []
Categories
ESLint linguaggio javascript

Linguaggio JavaScript (2)

Per rendere il linguaggio privo delle parte “legacy”, si può utilizzare nella prima riga la seguente direttiva:

"use strict";
Categories
funzioni linguaggio javascript

Definire le funzioni

Le funzioni in JavaScript possono essere definite per mezzo di quattro tecniche:

Categories
funzioni linguaggio javascript

Definire variabili e costanti

In JavaScript esistono tre parole chiave per definire reference, variabili, oggetti e/o funzioni:

Categories
design pattern

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

Categories
funzioni linguaggio javascript namespace

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.

Categories
design pattern

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.

Categories
linguaggio javascript

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 ).