2016-01-01 7 views
10

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?

+3

[Quelle parole non riservate.] (Http://www.ecma-international.org/ecma-262/6.0/#sec-reserved-words) – Pointy

+0

Perché appaiono nella [lista di parole riservate] (http: //www.w3schools.com/js/js_reserved.asp)? – lee

+7

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

risposta

5

Reserved keywords as of ECMAScript 6

break case class catch const continue debugger default delete do else 
export extends finally for function if import in instanceof new return 
super switch this throw try typeof var void while with yield 

e abstract e native (more here) erano riservati come futuri parole chiave di specifiche ECMAScript anziani (ECMAScript 1 fino a 3).

sempre riservato: enum

riservati quando si trovano in stretta codice modalità:

implements package protected static let interface private public 

riservato quando si trovano nel codice del modulo: await

0

una parola riservata (noto anche come un identificatore o una parola chiave riservati) è una parola che non può essere utilizzata come identificatore, come il nome di una variabile, funzione o etichetta - è "riservato dall'uso". Le parole riservate o le parole chiave hanno un significato speciale all'interno dei linguaggi di programmazione. Sono utilizzati per identificare i tipi di dati nella lingua che supporta il sistema, che identificano i blocchi e i loop, ecc. Quindi la loro funzionalità è già definita nella libreria di sistema.

Includere parole chiave o parole riservate nel codice, creare confusione con altri sviluppatori e con il compilatore nel momento in cui si esegue il codice. Questo è il motivo per cui le parole riservate non sono consentite per molti linguaggi di programmazione. Esistono altri linguaggi di programmazione con parole chiave simili; come C, C++, C# e Java condividono una comunanza.

Qui è possibile ottenere l'elenco più aggiornato di Reserved Words in JavaScript, ma contiene anche esempi utili.