aboutsummaryrefslogtreecommitdiff
path: root/files/ca/web/javascript/referencia/objectes_globals/undefined/index.html
diff options
context:
space:
mode:
authorPeter Bengtsson <mail@peterbe.com>2020-12-08 14:41:15 -0500
committerPeter Bengtsson <mail@peterbe.com>2020-12-08 14:41:15 -0500
commit4b1a9203c547c019fc5398082ae19a3f3d4c3efe (patch)
treed4a40e13ceeb9f85479605110a76e7a4d5f3b56b /files/ca/web/javascript/referencia/objectes_globals/undefined/index.html
parent33058f2b292b3a581333bdfb21b8f671898c5060 (diff)
downloadtranslated-content-4b1a9203c547c019fc5398082ae19a3f3d4c3efe.tar.gz
translated-content-4b1a9203c547c019fc5398082ae19a3f3d4c3efe.tar.bz2
translated-content-4b1a9203c547c019fc5398082ae19a3f3d4c3efe.zip
initial commit
Diffstat (limited to 'files/ca/web/javascript/referencia/objectes_globals/undefined/index.html')
-rw-r--r--files/ca/web/javascript/referencia/objectes_globals/undefined/index.html174
1 files changed, 174 insertions, 0 deletions
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
+---
+<div>
+<div>
+<div>{{jsSidebar("Objects")}}</div>
+</div>
+</div>
+
+<h2 id="Summary" name="Summary">Resum</h2>
+
+<p>El valor de la propietat global <code><strong>undefined</strong></code> representa el valor <code>undefined</code>. És un dels {{Glossary("Primitive", "tipus primitius")}} de JavaScript.</p>
+
+<p>{{js_property_attributes(0,0,0)}}</p>
+
+<h2 id="Syntax" name="Syntax">Sintaxi</h2>
+
+<pre class="syntaxbox"><code>undefined</code></pre>
+
+<h2 id="Description" name="Description">Descripció</h2>
+
+<p><code>undefined</code> és una propietat de l'<em>objecte global</em>, és a dir, és una variable dins l'àmbit global.</p>
+
+<p>Als navegadors moderns (JavaScript 1.8.5 / Firefox 4+), <code>undefined</code> é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.</p>
+
+<p>Una variable a la que no s'ha assignat cap valor  és de tipus <code>undefined</code>. Un mètode o sentència retornarà <code>undefined</code> si la variable que s'evalua no te assignat cap valor. Una funció retornarà <code>undefined</code> si no es {{jsxref("Statements/return", "retorna")}} un valor explícitament.</p>
+
+<p>Degut a que <code>undefined</code> no és una {{jsxref("Reserved_Words", "paraula reservada")}} es pot emprar com a <a href="/ca/docs/Web/JavaScript/Guide/Values,_variables,_and_literals#Variables">identificador</a> (nom de variable) a qualsvol àmbit que no sigui el global.</p>
+
+<pre class="brush: js">// mostra "foo string"
+(function(){ var undefined = 'foo'; console.log(undefined, typeof undefined); })();
+
+// mostra "foo string"
+(function(undefined){ console.log(undefined, typeof undefined); })('foo');
+</pre>
+
+<h2 id="Exemples">Exemples</h2>
+
+<h3 id="Igualtat_estricta_i_undefined">Igualtat estricta i <code>undefined</code></h3>
+
+<p>Es pot emprar <code>undefined</code> en combinació amb els operadors de igualtat i no-igualtat per determinar si una variable té assignat un valor.</p>
+
+<pre class="brush: js">var x;
+if (x === undefined) {
+ // sentències que s'executaran
+}
+else {
+ // sentències que no s'executaran
+}
+</pre>
+
+<div class="note">Nota: En aquest cas s'ha de fer servir l'operador d'igualtat estricta (<code>===</code>) en comptes de l'operador standard d'igualtat (<code>==</code>) ja que <code>x == undefined</code> també comprova si <code>x</code> és <code>null</code>, mentre que l'operador d'igualtat estricta no ho fa. <code>null</code> no és equivalent a <code>undefined</code>. Per més detalls vegeu {{jsxref("Operators/Comparison_Operators", "comparació d'operadors")}}.</div>
+
+<h3 id="L'operador_Typeof_i_undefined"><code>L'operador Typeof</code> i <code>undefined</code></h3>
+
+<p>De forma alternativa, es pot emprar {{jsxref("Operators/typeof", "typeof")}}:</p>
+
+<pre class="brush: js">var x;
+if (typeof x === 'undefined') {
+ // sentències que s'executaran
+}
+</pre>
+
+<p>Una raó per utilitzar {{jsxref("Operators/typeof", "typeof")}} és que no provoca un error si la variable no ha estat definida prèviament.</p>
+
+<pre class="brush: js">// 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
+
+}
+</pre>
+
+<p>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).</p>
+
+<h3 id="L'operador_Void_i_undefined"><code>L'operador Void</code> i <code>undefined</code></h3>
+
+<p>L'operador {{jsxref("Operators/void", "void")}} és una altra alternativa.</p>
+
+<pre class="brush: js">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`)
+}
+</pre>
+
+<h2 id="Especificacions">Especificacions</h2>
+
+<table class="standard-table">
+ <tbody>
+ <tr>
+ <th scope="col">Especificació</th>
+ <th scope="col">Estat</th>
+ <th scope="col">Comentaris</th>
+ </tr>
+ <tr>
+ <td>ECMAScript 1st Edition.</td>
+ <td>Standard</td>
+ <td>Definició inicial. Impementat a JavaScript 1.3</td>
+ </tr>
+ <tr>
+ <td>{{SpecName('ES5.1', '#sec-15.1.1.3', 'undefined')}}</td>
+ <td>{{Spec2('ES5.1')}}</td>
+ <td> </td>
+ </tr>
+ <tr>
+ <td>{{SpecName('ES6', '#sec-undefined', 'undefined')}}</td>
+ <td>{{Spec2('ES6')}}</td>
+ <td> </td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2>
+
+<p>{{ CompatibilityTable() }}</p>
+
+<div id="compat-desktop">
+<table class="compat-table">
+ <tbody>
+ <tr>
+ <th>Característica</th>
+ <th>Chrome</th>
+ <th>Firefox (Gecko)</th>
+ <th>Internet Explorer</th>
+ <th>Opera</th>
+ <th>Safari</th>
+ </tr>
+ <tr>
+ <td>Suport bàsic</td>
+ <td>{{ CompatVersionUnknown() }}</td>
+ <td>{{ CompatVersionUnknown() }}</td>
+ <td>{{ CompatVersionUnknown() }}</td>
+ <td>{{ CompatVersionUnknown() }}</td>
+ <td>{{ CompatVersionUnknown() }}</td>
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<div id="compat-mobile">
+<table class="compat-table">
+ <tbody>
+ <tr>
+ <th>Característica</th>
+ <th>Android</th>
+ <th>Chrome for Android</th>
+ <th>Firefox Mobile (Gecko)</th>
+ <th>IE Mobile</th>
+ <th>Opera Mobile</th>
+ <th>Safari Mobile</th>
+ </tr>
+ <tr>
+ <td>Suport bàsic</td>
+ <td>{{ CompatVersionUnknown() }}</td>
+ <td>{{ CompatVersionUnknown() }}</td>
+ <td>{{ CompatVersionUnknown() }}</td>
+ <td>{{ CompatVersionUnknown() }}</td>
+ <td>{{ CompatVersionUnknown() }}</td>
+ <td>{{ CompatVersionUnknown() }}</td>
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<p> </p>