Crockford's JavaScript: Le parti buone contiene the following text.Alcune parole riservate di JavaScript funzionano come variabili
parole riservate
Le seguenti parole sono riservate in JavaScript:
abstract boolean break byte case catch char class const continue debugger default delete do double else enum export extends false final finally float for function goto if implements import in instanceof int interface long native new null package private protected public return short static super switch synchronized this throw throws transient true try typeof var volatile void while with
La maggior parte di queste parole non sono usate nel linguaggio.
Non possono essere utilizzati per denominare variabili o parametri. Quando sono riservate le chiavi vengono utilizzate come chiavi nei letterali degli oggetti, devono essere citate. Essi non possono essere utilizzati con la notazione punto, quindi è a volte necessario usare la notazione staffa invece:
var method; // ok var class; // illegal object = {box: value}; // ok object = {case: value}; // illegal object = {'case': value}; // ok object.box = value; // ok object.case = value; // illegal object['case'] = value; // ok
Alcune delle parole riservate sembrano non essere riservato nei miei interpreti installati. Ad esempio, sia in Chrome 48 (beta) che in node.js 0.10.40 il seguente codice aggiungerà con successo due numeri identificati da parole riservate.
var abstract = 1;
var native = 1;
abstract + native;
> 2
Perché è possibile utilizzare queste due parole riservate come nomi di variabili? Mi sto perdendo qualcosa di cruciale?
[Quelle parole non riservate.] (Http://www.ecma-international.org/ecma-262/6.0/#sec-reserved-words) – Pointy
Perché appaiono nella [lista di parole riservate] (http: //www.w3schools.com/js/js_reserved.asp)? – lee
Perché quell'elenco di parole riservate è sbagliato. È un buon esempio del motivo per cui W3Schools è spesso considerato inaffidabile. Il link che ho fornito è specifico per la lingua. – Pointy