2015-07-08 11 views
5

Z powodu "wojny religijnej" w moim obecnym miejscu pracy postanowiłem zbadać historię funkcji ASI w javascript.Dlaczego automatyczne dodawanie średniego średnika (ASI) zostało dodane do javascript?

Ale mam problem ze zrozumieniem, dlaczego i kiedy ASI został wprowadzony do javascript.

Wygląda na to, że była to funkcja na zawsze, ale czy istnieje konkretny powód, aby istniały dwa sposoby na zakończenie wyrażenia w javascript?

Niektóre źródła opisują ASI jako funkcję korekcji błędów, co oznaczałoby, że pomijanie średników jest złą praktyką.

Czy istnieje wpływ na wydajność w oparciu o ASI?

Osobiście wolę średniki, ponieważ dzięki nim intencje są bardziej wyraźne, ale osobiste preferencje nie stanowią uzasadnionego argumentu w żadnej poważnej dyskusji.

+1

To dziwne, aby usłyszeć, że czy używać średników w JavaScript jest nadal debata. – Nit

+2

Jeśli chcesz uzyskać odpowiedź na takie pytanie, przejdź na forum, na które może odpowiedzieć oryginalny autor. Lub po prostu [* wykonaj wyszukiwanie *] (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

Jeśli walczysz w wojnie religijnej, powinieneś mieć własne argumenty - argumenty google to, imho, argument, że twoje argumenty nie mają mocnej strony .. wojny bojowe nigdy nie były łatwe - z wyjątkiem silnych punktów;) – Stefan

Odpowiedz

4

Świetne pytanie!

Brenden Eich pierwotnie zaprojektował język programowania JavaScript i myślę, że można powiedzieć, że zgodziłby się, że automatyczne wstawienie średnika jest wadą konstrukcyjną w tym języku.

Nie powinniśmy go za to winić. Zaprojektował język w ciągu zaledwie 10 dni w 1995 roku, nie mając pojęcia, że ​​20 lat później stanie się (prawdopodobnie) najważniejszym językiem komputerowym na świecie.

W następnym poście mówi: "Chciałbym, abym w ciągu dziesięciu dni maja 1995 r. Zwiększył znaczenie nowych linii w JS."

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

Czytaj dalej ... :)

+1

Myślę, że to nie jest bardziej zbliżone do prawdziwej odpowiedzi niż to. Dzięki, miałem problem ze znalezieniem go w google ... – EJTH

+1

Tworzenie nowych linii * "bardziej znaczące" * wcale nie sugeruje, że żałuje decyzji ASI. W rzeczywistości jest dokładnie odwrotnie; pokazuje, że stoi za tą decyzją, ale chciał lepszego miejsca na nią w języku. Jeśli nie ma ASI, nowe linie mają zerowe znaczenie. –

+0

@ user1106925 huh, w tym poście mówi: "uważaj, aby nie używać ASI, jak gdyby dało to JS znaczące nowe linie." jasne jest, że jeśli przeczytałeś, że on myśli, że wykorzystywanie ASI jest złym pomysłem. – Spongman

Powiązane problemy