aboutsummaryrefslogtreecommitdiff
path: root/files/fr/web/javascript/reference/erreurs/reserved_identifier/index.html
blob: 98bb834523b1f8e6946fca6023341e3a97b82e09 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
---
title: 'SyntaxError: "x" is a reserved identifier'
slug: Web/JavaScript/Reference/Erreurs/Reserved_identifier
tags:
  - Erreurs
  - JavaScript
  - SyntaxError
translation_of: Web/JavaScript/Reference/Errors/Reserved_identifier
---
<div>{{jsSidebar("Errors")}}</div>

<h2 id="Message">Message</h2>

<pre class="syntaxbox">SyntaxError: The use of a future reserved word for an identifier is invalid (Edge)
SyntaxError: "x" is a reserved identifier (Firefox)
SyntaxError: Unexpected reserved word (Chrome)</pre>

<h2 id="Type_d'erreur">Type d'erreur</h2>

<p>{{jsxref("SyntaxError")}}</p>

<h2 id="Quel_est_le_problème">Quel est le problème ?</h2>

<p><a href="/fr/docs/Web/JavaScript/Reference/Grammaire_lexicale#Mots-clés_réservés_selon_ECMAScript_2015">Les mots-clés réservés</a> lèveront une exception s'ils sont utilisés en tant qu'identifiants. Voici les mots-clés réservés en mode strict et en mode <em>sloppy</em> :</p>

<ul>
 <li><code>enum</code></li>
</ul>

<p>Voici les mots-clés uniquement réservés en mode strict :</p>

<ul class="threecolumns">
 <li><code>implements</code></li>
 <li><code>interface</code></li>
 <li>{{jsxref("Statements/let", "let")}}</li>
 <li><code>package</code></li>
 <li><code>private</code></li>
 <li><code>protected</code></li>
 <li><code>public</code></li>
 <li><code>static</code></li>
</ul>

<h2 id="Exemples">Exemples</h2>

<h3 id="Mots-clés_réservés_en_modes_strict_et_non-strict">Mots-clés réservés en modes strict et non-strict</h3>

<p>L'identifiant <code>enum</code> est réservé dans les différents cas :</p>

<pre class="brush: js example-bad">var enum = { RED: 0, GREEN: 1, BLUE: 2 };
// SyntaxError: enum is a reserved identifier
</pre>

<p>En mode strict, d'autres mots-clés sont réservés :</p>

<pre class="brush: js example-bad">"use strict";
var package = ["pomme", "poire", "pêches"];
// SyntaxError: package is a reserved identifier
</pre>

<p>Pour ne pas avoir l'erreur, il faudra renommer les variables :</p>

<pre class="brush: js example-good">var enumCouleurs = { RED: 0, GREEN: 1, BLUE: 2 };
var liste = ["pomme", "poire", "pêches"];</pre>

<h3 id="Mettre_à_jour_les_anciens_navigateurs">Mettre à jour les anciens navigateurs</h3>

<p>Si vous utilisez un ancien navigateur qui n'implémente pas <code><a href="/fr/docs/Web/JavaScript/Reference/Instructions/let">let</a></code> ou <code><a href="/fr/docs/Web/JavaScript/Reference/Instructions/class">class</a></code>, vous devrez mettre à jour votre navigateur :</p>

<pre class="brush: js">"use strict";
class DocArchiver {}

// SyntaxError: class is a reserved identifier
// (lève une exception dans les anciens navigateurs
// tels que Firefox 44 et les versions antérieures)
</pre>

<h2 id="Voir_aussi">Voir aussi</h2>

<ul>
 <li><a href="https://wiki.c2.com/?GoodVariableNames">Utiliser de bons noms de variable</a></li>
</ul>