From 4b1a9203c547c019fc5398082ae19a3f3d4c3efe Mon Sep 17 00:00:00 2001 From: Peter Bengtsson Date: Tue, 8 Dec 2020 14:41:15 -0500 Subject: initial commit --- .../objectes_globals/undefined/index.html | 174 +++++++++++++++++++++ 1 file changed, 174 insertions(+) create mode 100644 files/ca/web/javascript/referencia/objectes_globals/undefined/index.html (limited to 'files/ca/web/javascript/referencia/objectes_globals/undefined/index.html') diff --git a/files/ca/web/javascript/referencia/objectes_globals/undefined/index.html b/files/ca/web/javascript/referencia/objectes_globals/undefined/index.html new file mode 100644 index 0000000000..3dd30fbefe --- /dev/null +++ b/files/ca/web/javascript/referencia/objectes_globals/undefined/index.html @@ -0,0 +1,174 @@ +--- +title: undefined +slug: Web/JavaScript/Referencia/Objectes_globals/undefined +translation_of: Web/JavaScript/Reference/Global_Objects/undefined +--- +
+
+
{{jsSidebar("Objects")}}
+
+
+ +

Resum

+ +

El valor de la propietat global undefined representa el valor undefined. És un dels {{Glossary("Primitive", "tipus primitius")}} de JavaScript.

+ +

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

+ +

Sintaxi

+ +
undefined
+ +

Descripció

+ +

undefined és una propietat de l'objecte global, és a dir, és una variable dins l'àmbit global.

+ +

Als navegadors moderns (JavaScript 1.8.5 / Firefox 4+), undefined és una propietat no configurable i que no pot ser escrita, tal com denota la especificació ECMAScript 5. Encara que no sigui el cas, és convenient evitar sobreescriure el seu valor.

+ +

Una variable a la que no s'ha assignat cap valor  és de tipus undefined. Un mètode o sentència retornarà undefined si la variable que s'evalua no te assignat cap valor. Una funció retornarà undefined si no es {{jsxref("Statements/return", "retorna")}} un valor explícitament.

+ +

Degut a que undefined no és una {{jsxref("Reserved_Words", "paraula reservada")}} es pot emprar com a identificador (nom de variable) a qualsvol àmbit que no sigui el global.

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

Exemples

+ +

Igualtat estricta i undefined

+ +

Es pot emprar undefined en combinació amb els operadors de igualtat i no-igualtat per determinar si una variable té assignat un valor.

+ +
var x;
+if (x === undefined) {
+   // sentències que s'executaran
+}
+else {
+   // sentències que no s'executaran
+}
+
+ +
Nota: En aquest cas s'ha de fer servir l'operador d'igualtat estricta (===) en comptes de l'operador standard d'igualtat (==) ja que x == undefined també comprova si x és null, mentre que l'operador d'igualtat estricta no ho fa. null no és equivalent a undefined. Per més detalls vegeu {{jsxref("Operators/Comparison_Operators", "comparació d'operadors")}}.
+ +

L'operador Typeof i undefined

+ +

De forma alternativa, es pot emprar {{jsxref("Operators/typeof", "typeof")}}:

+ +
var x;
+if (typeof x === 'undefined') {
+   // sentències que s'executaran
+}
+
+ +

Una raó per utilitzar {{jsxref("Operators/typeof", "typeof")}} és que no provoca un error si la variable no ha estat definida prèviament.

+ +
// x no ha estat prèviament definida
+if (typeof x === 'undefined') { // s'evalua a true sense errors
+   // sentències que s'executaran
+}
+
+if(x === undefined){ // llença ReferenceError
+
+}
+
+ +

De totes formes és recomanable evitar l'ús d'aquest tipus de tècniques. JavaScript és un llenguatge amb àmbits estàtics, de manera que per saber si una variable ha estat definida prèviament n'hi ha prou amb comprovar si ha estat definida dins l'àmbit immediat. L'única excepció és l'àmbit global. Aquest, però, està vinculat a l'objecte global, per la qual cosa comprovar si una variable existeix dins l'àmbit global és equivalent a comprovar l'existència d'una propietat dins l'objecte global (emprant l'operador {{jsxref("Operators/in", "in")}}, per exemple).

+ +

L'operador Void i undefined

+ +

L'operador {{jsxref("Operators/void", "void")}} és una altra alternativa.

+ +
var x;
+if (x === void 0) {
+   // sentències que s'executaran
+}
+
+// y no ha estat definida prèviament
+if (y === void 0) {
+   // llença ReferenceError (en oposició a `typeof`)
+}
+
+ +

Especificacions

+ + + + + + + + + + + + + + + + + + + + + + + + +
EspecificacióEstatComentaris
ECMAScript 1st Edition.StandardDefinició inicial. Impementat a JavaScript 1.3
{{SpecName('ES5.1', '#sec-15.1.1.3', 'undefined')}}{{Spec2('ES5.1')}} 
{{SpecName('ES6', '#sec-undefined', 'undefined')}}{{Spec2('ES6')}} 
+ +

Compatibilitat amb navegadors

+ +

{{ CompatibilityTable() }}

+ +
+ + + + + + + + + + + + + + + + + + + +
CaracterísticaChromeFirefox (Gecko)Internet ExplorerOperaSafari
Suport bàsic{{ CompatVersionUnknown() }}{{ CompatVersionUnknown() }}{{ CompatVersionUnknown() }}{{ CompatVersionUnknown() }}{{ CompatVersionUnknown() }}
+
+ +
+ + + + + + + + + + + + + + + + + + + + + +
CaracterísticaAndroidChrome for AndroidFirefox Mobile (Gecko)IE MobileOpera MobileSafari Mobile
Suport bàsic{{ CompatVersionUnknown() }}{{ CompatVersionUnknown() }}{{ CompatVersionUnknown() }}{{ CompatVersionUnknown() }}{{ CompatVersionUnknown() }}{{ CompatVersionUnknown() }}
+
+ +

 

-- cgit v1.2.3-54-g00ecf