Wprowadzenie do JavaScriptu

Mimo swojej nazwy JavaScript jest związany tylko z Javą, ponieważ ma kilka podobieństwa składowe. Składnia języka JavaScript w początkowej fazie rozwoju była została luźno inspirowana składnią języka Java i nosiła nazwę „LiveScript”. kiedy po raz pierwszy wersji beta Netscape Navigator, oba, aby dostosować innych nazwanych produktów firmy Netscape, a także ukłon w stronę fakt, że jest ona udostępniana. w przeglądarce. Firma Microsoft wydała własną implementację JavaScriptu, „JScript”, wkrótce potem w Internet Explorerze 3.0.

Firma Netscape przesłała te wczesne prace do Ecma International, organizację, która opracowuje i opublikuje standardy techniczne w celu nadawania i opracowywania język skryptowy powinien być zrozumiały dla innych przeglądarek. W 1997 roku Ecma Międzynarodowa publikacja ECMA-262 ustandaryzująca pierwszą wersję skryptu o nazwie ECMAScript. ECMAScript jest standardem wykorzystywanym konkretnych języków skryptowych. Na przykład Microsoft pracuje później nad JScript, kod JavaScript firmy Adobe i sam JavaScript.

To rozróżnienie jest ważne przy omawianiu konkretnych aspektów i cech JavaScriptu. „ES5” odnosi się do pierwszej głównej „wersji”, premiery standardu ECMAScript w 2009 r., a następnie stopniowo rozwijaliśmy tę usługę. „ES6” (inaczej „ES2015”) to skrót od norm ustanowionych przez szóstą edycję ECMAScript, opublikowane w 2015 r. Po ES6 nowe wersje ECMAScript standard jest publikowany co roku wraz ze zmianami i dodatkami do każdej wersji określane w ciągu roku, tak jak w „ES2016” lub „ES2017”.

Podstawowe zasady

W przeciwieństwie do języków skompilowanych JavaScript nie jest tłumaczony z kodu pisanego przez użytkownika w formie zrozumiałej dla przeglądarki. Skrypt zostanie wysłany do przeglądarki obok zasobów takich jak znaczniki, obrazy i arkusze stylów, przeglądarka interpretuje te elementy w taki sam sposób, w jaki zapisano: jako czytelną dla człowieka sekwencję znaków Unicode, jest analizowany z lewej na prawą i z góry na dół.

Gdy interpreter JavaScript otrzymuje skrypt, najpierw wykonuje działanie analiza leksykalna, czyli analizowanie długiego ciągu znaków składającego się na skrypt. i przekształcanie jej w takie osobne elementy wejściowe:

  • Tokeny
  • Formatuj znaki sterujące
  • Znaczki do linii
  • Komentarze
  • Wolna przestrzeń (prawie zawsze oznaczają znaki tabulacji i spacje).

Wyniki skryptu nie są zachowywane po ponownym załadowaniu lub zamknięciu bieżącej stronie, chyba że zamieścisz wyraźne instrukcje w scenariusz.

Ogólnie aplikacje JavaScript składają się z instrukcji i wyrażenia.

Oświadczenia

Instrukcja to jednostka instrukcji składającej się z co najmniej jednego wiersza kodu, reprezentują działanie. Możesz na przykład użyć tej instrukcji, aby przypisać wartość do zmiennej o nazwie myVariable:

let myVariable = 4;

myVariable;
> 4

Aby instrukcje były poprawnie interpretowane, muszą kończyć się średnikiem. Jednak te średniki nie zawsze są wymagane podczas zapisywania kodu JavaScript. Funkcja o nazwie automatyczne wstawianie średnika pozwala podział po pełnej instrukcji jest traktowany jako średnik, jeśli brakuje argumentu średnik byłby błędem.

ASI to korekcja błędów, a nie mniej rygorystyczny aspekt samego JavaScriptu. Ponieważ że poleganie na tym poprawianiu błędów może prowadzić do niejasności, nadal musisz ręcznie kończyć każdą instrukcję średnikiem.

Instrukcje blokowania

Instrukcja blokowania grupuje dowolną liczbę instrukcji i deklaracji w parze nawiasów klamrowych ({}). Pozwala łączyć wyrażenia w miejscach, w których JavaScript oczekuje tylko jednego.

Powiadomienia o blokowaniu najczęściej pojawiają się obok instrukcje kontrolowania przepływu, na przykład if:

if ( x === 2 ) {
  //some behavior;
}

Wyrażenia

Wyrażenie to jednostka kodu, której wynikiem jest wartość, jest używany zawsze, gdy oczekiwana jest wartość. 2 + 2 to wyrażenie, które zwraca wartość 4:

2 + 2;
> 4

„Operator grupowania” – para nawiasów zamykających – jest używana do grupować części wyrażenia, tak by część wyrażenia była jest oceniana jako jedna jednostka. Możesz na przykład użyć operatora grupowania, aby zastąpić matematyczną kolejność działań, lub zwiększyć czytelność kodu:

2 + 2 * 4;
> 10

( 2 + 2 ) * 4;
> 16

let myVariable = ( 2 + 2 );

myVariable;
> 4

Słabe pisanie

JavaScript to język słabo wpisany, co oznacza, że wartość danych nie wymaga być wyraźnie oznaczony jako konkretny typ danych. W przeciwieństwie do języka wpisanego bezpośrednio JavaScript może określić zamierzony typ na podstawie do kontekstu wartości i przekształć wartość na ten typ. Ten proces nazywa się przymusem typu.

Jeśli na przykład do wartości ciągu znaków dodasz liczbę w języku wyraźnie wpisanym, np. w Pythonie, wynikiem będzie błąd:

>>> "1" + 1
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: cannot concatenate 'str' and 'int' objects

Zamiast zwracać błąd, JavaScript przekształca wartość liczbową na ciąg znaków i łączy obie wartości. Jest to prawdopodobnie zamierzone działanie przy dodawaniu dowolną wartość ciągu:

"1" + 1;
> "11"

Typy danych mogą być też jawnie zmieniane. W tym przykładzie wartość liczbowa 100 na wartość ciągu "100" przy użyciu wbudowanego kodu JavaScript Metoda toString:

let myVariable = 100;

typeof myVariable;
> "number"

myVariable = myVariable.toString();
> "100"

typeof myVariable;
> "string"

Rozróżnianie wielkości liter

W przeciwieństwie do kodu HTML i większości arkuszy CSS w samym języku JavaScript jest w pełni rozróżniana wielkość liter. Oznacza to, że musisz zawsze spójnie używać wielkich liter, od właściwości i metody wbudowane w język zdefiniowany przez Ciebie w identyfikatorach. siebie.

console.log( "Log this." );
> Log this.

console.Log( "Log this too." );
> Uncaught TypeError: console.Log is not a function
const myVariable = 2;

myvariable;
> Uncaught ReferenceError: myvariable is not defined

myVariable;
> 2

Odstęp

W języku JavaScript nie ma odstępów. Oznacza to, że tłumacz ignoruje liczbę i typ użytych odstępów (tabulatory lub spacje);

                     console.log(       "Log this"  );console.log("Log this too");
> "Log this."
> "Log this too."

Obecność odstępów może być jednak istotnym separatorem między tokeny leksykalne:

let x;

[tokeny: [let] [x] ]

letx;
> Uncaught ReferenceError: letx is not defined

[tokeny: [letx] ]

Jeśli do oddzielenia znaczących tokenów leksykalnych są używane odstępy, parser ignoruje ilość i typ odstępu:

let           x                             =                           2;

[tokeny: [let] [x] [=] [2] ]

To samo dotyczy podziałów wierszy, chociaż są sytuacje, w których mogą one powodować problemy poprzez przedwczesne zakończenie wyrażenia):

let x
=
2;

[tokeny: [let] [x] [=] [2] ]

Stylistycznie rzecz ujmując, niektóre typy oświadczeń często zajmują jeden wiersz:

let x = 1;
let y = 2;

Niektóre stwierdzenia często zawierają kilka wierszy:

if ( x == 2 ) {
  //some behavior;
}

Jednak te konwencje mają na celu wyłącznie czytelność. JavaScript interpretuje poprzednie przykłady w taki sam sposób jak poniżej:

let x=1;let y=2;
if(x==2){}

Z tego powodu zautomatyzowany proces usuwa nieistotne odstępy plików skryptów w celu zmniejszania rozmiaru transferu to typowy krok podczas przygotowywania JavaScriptu w środowisku produkcyjnym oraz wiele innych optymalizacji.

Używanie odstępów w JavaScripcie przede wszystkim zależy od autora preferencji opiekuna. Projekty JavaScript z wieloma programistami tworzący kod często sugeruje lub egzekwuje określone konwencje dotyczące odstępów zapewnić spójne formatowanie kodu – na przykład użycie tabulatorów lub spacji do dodaj wcięcie:

let myVariable = 10;

if ( typeof myVariable === "number" ) {
    console.log( "This variable is a number." );
    if( myVariable > 5 ) {
     console.log( "This variable is greater than five." );
    }
}

> "This variable is a number."
> "This variable is greater than five."

Sprawdź swoją wiedzę

Co to jest wyrażenie?

Komentarz wyjaśniający, do czego służy ten kod.
Jednostka kodu, której wynikiem jest wartość.
Grupa instrukcji i deklaracji.

W języku JavaScript wielkość liter ma znaczenie.

Fałsz
Prawda