2015-07-08 24 views
5

A causa di una "guerra religiosa" nel mio attuale luogo di lavoro, ho deciso di ricercare la storia della funzione ASI di javascript.Perché l'inserimento automatico del punto e virgola (ASI) è stato aggiunto a javascript?

Ma non riesco a capire perché e quando ASI è stato introdotto in javascript.

Sembra che sia stata una funzione per sempre, ma c'è una ragione specifica per cui ci sono due modi per terminare una dichiarazione in javascript?

Alcune fonti descrivono ASI come una funzione di correzione degli errori, il che implicherebbe che l'omissione di punti e virgola è una cattiva pratica.

C'è qualche impatto sulle prestazioni affidandosi all'ASI?

Personalmente preferisco il punto e virgola perché rende le intenzioni più esplicite, ma la preferenza personale non è un argomento valido in nessuna discussione seria.

+1

E 'strano sentire che se utilizzare il punto e virgola in Javascript è ancora un dibattito. – Nit

+2

Se si desidera una risposta a tale domanda, andare in un forum in cui l'autore originale potrebbe rispondere. O semplicemente [* fai una ricerca *] (https://www.google.com.au/search?client=safari&rls=en&q=brendan+eich+why+automatic+semicolon+insertion&ie=UTF-8&oe=UTF-8&gfe_rd= cr & EI = GwudVbqjIaTu8wfLy5foCA). – RobG

+0

Se combatti una guerra religiosa allora dovresti avere i tuoi argomenti - google per argomenti è, imho, un punto che i tuoi argomenti non hanno un punto di forza .. combattere guerre non è mai stato facile - eccetto che hai punti forti;) – Stefan

risposta

4

Ottima domanda!

Brenden Eich ha progettato il linguaggio di programmazione JavaScript in origine, e penso sia giusto dire che sarebbe d'accordo che l'inserimento automatico del punto e virgola è un difetto di progettazione nella lingua.

Non dovremmo biasimarlo. Ha progettato la lingua in un periodo di soli 10 giorni nel 1995, non avendo idea che 20 anni dopo sarebbe diventato (probabilmente) il linguaggio informatico più importante del pianeta.

Nel seguente post dice "Vorrei aver reso newlines più significativi in ​​JS in quei dieci giorni nel maggio 1995".

https://brendaneich.com/2012/04/the-infernal-semicolon/

Leggi su ... :)

+1

Immagino che non si avvicini di più a una vera risposta di questa. Grazie, ho avuto difficoltà a trovare questo su google ... – EJTH

+1

Rendere newlines * "più significativo" * non suggerisce affatto che si penti della decisione dell'ASI. In realtà è esattamente l'opposto; mostra che si trova dietro questa decisione, ma desidera una migliore sistemazione nella lingua. Se non c'è un ASI, i newline hanno zero significati. –

+0

@ user1106925 huh, in quel post dice: "fai attenzione a non usare l'ASI come se avesse dato a JS un segno di novità significativo". è abbastanza chiaro se lo leggi che pensa che abusare dell'ASI sia una cattiva idea. – Spongman