Oggetto global in Javascript
- L'oggetto globale in Javascript è un normale oggetto che contiene le proprietà globali accessibili in tutto il codice.
- In Node.js, l'oggetto globale è accessibile tramite la proprietà
global
. - Nei browser, l'oggetto globale è l'oggetto
Window
, che contiene le proprietà globali e altre specifiche del browser. - ES2020 introduce
globalThis
come un modo standard per accedere all'oggetto globale in qualsiasi contesto. - Le proprietà dell'oggetto globale includono costanti come
undefined
,Infinity
, eNaN
, funzioni globali comeisNaN()
eparseInt()
, e oggetti comeMath
eJSON
. - Le proprietà globali non sono parole riservate, ma dovrebbero essere trattate come tali per evitare conflitti con il codice esistente.
- L'oggetto globale è fondamentale per la definizione di identificatori globali disponibili in un programma JavaScript.
L'Oggetto global
Le lezioni precedenti hanno spiegato i tipi primitivi e i valori di JavaScript. I tipi oggetto, oggetti, array e funzioni, saranno trattati in lezioni dedicate più avanti. Ma c'è un valore oggetto molto importante che si deve coprire ora. L'oggetto globale è un normale oggetto JavaScript che serve a uno scopo molto importante: le proprietà di questo oggetto sono gli identificatori definiti globalmente che sono disponibili a un programma JavaScript. Quando l'interprete JavaScript si avvia (o ogni volta che un browser web carica una nuova pagina), crea un nuovo oggetto globale e gli assegna un insieme iniziale di proprietà che definiscono:
- Costanti globali come
undefined
,Infinity
, eNaN
- Funzioni globali come
isNaN()
,parseInt()
, eeval()
- Funzioni costruttrici come
Date()
,RegExp()
,String()
,Object()
, eArray()
- Oggetti globali come
Math
eJSON
Le proprietà iniziali dell'oggetto globale non sono parole riservate, ma meritano di essere trattate come se lo fossero.
In Node.js, l'oggetto globale ha una proprietà chiamata global
il cui valore è l'oggetto globale stesso, quindi è sempre possibile riferirsi all'oggetto globale con il nome global
nei programmi Node.
Nei browser web, l'oggetto Window serve come oggetto globale per tutto il codice JavaScript contenuto nella finestra del browser che rappresenta. Questo oggetto Window globale ha una proprietà auto-referenziale window
che può essere utilizzata per riferirsi all'oggetto globale. L'oggetto Window definisce le proprietà globali principali, ma definisce anche molte altre globali che sono specifiche per i browser web e JavaScript lato client. I thread dei web worker hanno un oggetto globale diverso dalla Window con cui sono associati. Il codice in un worker può riferirsi al suo oggetto globale come self
.
ES2020 finalmente definisce globalThis
come il modo standard per riferirsi all'oggetto globale in qualsiasi contesto.