From da78a9e329e272dedb2400b79a3bdeebff387d47 Mon Sep 17 00:00:00 2001 From: Peter Bengtsson Date: Tue, 8 Dec 2020 14:42:17 -0500 Subject: initial commit --- .../reference/global_objects/undefined/index.html | 173 +++++++++++++++++++++ 1 file changed, 173 insertions(+) create mode 100644 files/it/web/javascript/reference/global_objects/undefined/index.html (limited to 'files/it/web/javascript/reference/global_objects/undefined') diff --git a/files/it/web/javascript/reference/global_objects/undefined/index.html b/files/it/web/javascript/reference/global_objects/undefined/index.html new file mode 100644 index 0000000000..d16ca712cf --- /dev/null +++ b/files/it/web/javascript/reference/global_objects/undefined/index.html @@ -0,0 +1,173 @@ +--- +title: undefined +slug: Web/JavaScript/Reference/Global_Objects/undefined +translation_of: Web/JavaScript/Reference/Global_Objects/undefined +--- +
+
+
{{jsSidebar("Objects")}}
+
+
+ +

Sommario

+ +

La variabile globale undefined rappresenta il valore primitivo {{Glossary("Undefined", "undefined")}}. È uno dei {{Glossary("Primitive", "valori primitivi")}} di JavaScript.

+ +

{{js_property_attributes(0,0,0)}}

+ +

Sintassi

+ +
undefined
+ +

Descrizione

+ +

undefined è una proprietà dell'oggetto globale, ossia una variablie nel contesto globale. Il valore iniziale di undefined è il valore primitivo {{Glossary("Undefined", "undefined")}}.

+ +

Secondo la specifica ECMAScript5, undefined è accessibile in sola lettura (implementato in JavaScript 1.8.5 / Firefox 4).

+ +

Una variabile alla quale non è ancora stato assegnato un valore è di tipo undefined. Un metodo o una dichiarazione restituisce undefined se la variabile che viene valutata non ha un valore assegnato. Una funzione restituisce undefined se non viene restituito un altro valore.

+ +

Siccome undefined non è una {{jsxref("Reserved_Words", "parola riservata")}}, può essere usato come nome di una variabile in qualsiasi contesto, eccetto quello globale.

+ +
// logs "foo string"
+(function(){ var undefined = 'foo'; console.log(undefined, typeof undefined); })();
+
+// logs "foo string"
+(function(undefined){ console.log(undefined, typeof undefined); })('foo');
+
+ +

Esempi

+ +

undefined e l'uguaglianza ristretta

+ +

Puoi usare undefined e gli operatori "strettamente uguale" e "strettamente diverso" per determinare se ad una variabile è stato assegnato un valore. In questo codice, la variabile x non è definita, qundi l'istruzione if viene valutata vera.

+ +
var x;
+
+x === undefined; // true
+
+ +
Nota: Qui devono essere utilizzati gli operatori di uguaglianza stretta, perché x == undefined è vero anche se x è null, mentre confrontandoli con l'ugualianza stretta no. null e undefined non sono equivalenti. Vedi gli {{jsxref("Operators/Comparsion_Operators", "operatori di comparazione")}} per altri dettagli.
+ +

undefined e l'operatore typeof

+ +

In alternativa può anche essere usato l'operatore {{jsxref("Operators/typeof", "typeof")}}:

+ +
var x;
+
+typeof x === 'undefined'; // true
+
+ +

Un motivo per cui usare l'operatore {{jsxref("Operators/typeof", "typeof")}} è che se la variabile non  stata dichiarata non viene generato un errore.

+ +
// x non è ancora stata dichiarata
+
+typeof x === "undefined"; // viene valutata come vera, senza generare erroi
+
+x === undefined;          // genera un ReferenceError
+
+ +

Comunque questa tecnica dovrebbe essere evitata. JavaScript è un linguaggio staticamente contestualizzato, quindi si può sapere se una variabile è stata dichiarata in un contesto guardando in quelli che lo contengono. L'unica eccezione è il contesto globale, che è rappresentato dall'oggetto globale: quindi per sapere se esiste una variabile basta controllare se esiste una proprietà nell'oggetto globale (per esempio usando l'operatore {{jsxref("Operators/in", "in")}} o il metodo {{jsxref("Global_Objects/Object/hasOwnProperty", "hasOwnProperty")}})

+ +
// x non è ancora stata dichiarata
+
+"x" in window;              // false
+window.hasOwnProperty("x"); // false
+
+var x = 3;
+
+"x" in window;              // true
+window.hasOwnProperty("y"); // true
+
+ +

undefined e l'operatore void

+ +

Una terza alternativa è l'operatore {{jsxref("Operators/void", "void")}}.

+ +
var x;
+x === void 0; // true
+
+// y non è ancora stata dichiarata
+y === void 0; // genera un ReferenceError (a differenza di `typeof`)
+
+ +

Specifications

+ + + + + + + + + + + + + + + + + + + + + + + + +
SpecificationStatusComment
ECMAScript 1st Edition.StandardDefinizione iniziale. Implementato in JavaScript 1.3
{{SpecName('ES5.1', '#sec-15.1.1.3', 'undefined')}}{{Spec2('ES5.1')}} 
{{SpecName('ES6', '#sec-undefined', 'undefined')}}{{Spec2('ES6')}} 
+ +

Compatibilità con i browser

+ +

{{CompatibilityTable}}

+ +
+ + + + + + + + + + + + + + + + + + + +
FunzionalitàChromeFirefox (Gecko)Internet ExplorerOperaSafari
Supporto di base{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}
+
+ +
+ + + + + + + + + + + + + + + + + + + + + +
FunzionalitàAndroidChrome for AndroidFirefox Mobile (Gecko)IE MobileOpera MobileSafari Mobile
Supporto di base{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}
+
+ +

 

-- cgit v1.2.3-54-g00ecf