Come ogni linguaggio di programmazione che si rispetti, il linguaggio JavaScript ha un insieme preciso di regole su come è corretto (cioè obbligatorio) scrivere i vari costrutti, sia su cosa è consigliato (ma in sé non obbligatorio), sia, infine, di cosa è perdonato e può essere scritto in modi formalmente scorretti.
Quest’ultima possibilità ti fa sorridere, ma se conosci il linguaggio HTML ti renderai subito conto che quel linguaggio di markup consente di dimenticare molti tag ed altre questioni di base, con pedaggi ridotti o anche nulli.
Per collegare gli oggetti alle proprietà (attributi, metodi) JavaScript usa la cosiddetta dot notation, la notazione col punto. Wikipedia la definisce bene: “è uno schema sintattico molto diffuso nei linguaggi di programmazione orientati agli oggetti per gestire le proprietà degli oggetti, come gli attributi e i metodi.”
Storicamente, la dot notation deriva dalla sintassi usata nei linguaggi della famiglia del linguaggio C per accedere ai campi di dati strutturati. Fra i linguaggi di programmazione orientati agli oggetti che adottano questo schema ci sono quelli derivati C, come C++, Java e C#.
Lo schema generale è il seguente:
<oggetto>.<proprietà>
Wikipedia fa degli esempi teorici ambientati nella vita comune, che spiegano benissimo il costrutto.
Un esempio che si trova in letteratura ipotizza l’applicazione della notazione a punto ad un’azione della vita pratica. Per impostare al valore 12 il volume di un altoparlante, ad esempio, si userebbe la seguente istruzione:
altoparlante.volume = 12
Per impostare il volume del subwoofer di un impianto di home theater:
hometheater.subwoofer.volume = 12
Rispettare la sintassi JavaScript non garantisce la correttezza del codice, minacciato dagli errori di semantica, come l’uso di una variabile non dichiarata.
Nell’ implementazione classica di JavaScript su browser, inoltre, è possibile commettere errori di sintassi, come ad esempio dimenticare le parentesi o i punti e virgola. Inoltre, è possibile commettere errori logici, come utilizzare una funzione o un metodo in modo non corretto o utilizzare un tipo di dati in modo non appropriato.
Questo perché il motore implementato nei browser implementa l’automatic semicolon insertion (ASI), che inserisce automaticamente i punti e virgola grammaticalmente necessari. Ciò significa che, anche se si dimenticano i punti e virgola, il codice verrà comunque eseguito correttamente.
Spesso, però, si confonde l’implementazione di JavaScript puro con quella di altre soluzioni compatibili. Per esempio, l’ASI non è implementato in Node.js, per cui, in quell’ambiente, l’omissione di punti e virgola può causare errori di sintassi e di esecuzione del codice.