JavaZmienna skryptu: Deklaracja, przypisanie wartości z przykładem
⚡ Inteligentne podsumowanie
JavaZmienne skryptu przechowują wartości, takie jak nazwy i liczby, lub wynik wyrażenia. Deklaracja zmiennej za pomocą var, let lub const rezerwuje nazwany slot, który reszta skryptu może odczytać i zaktualizować.
Zmienne służą do przechowywania wartości (imię = „Jan”) lub wyrażeń (suma = x + y). Każda wartość, którą skrypt przechowuje na później — nazwa użytkownika, suma bieżąca, flaga „tak” lub „nie” — znajduje się w zmiennej, więc ich deklarowanie i nadawanie im właściwych nazw to pierwsza umiejętność, którą należy opanować. JAVASCRIPT.
Zadeklaruj zmienne w JavaScenariusz
Przed użyciem zmiennej należy ją najpierw zadeklarować. Aby zadeklarować zmienną, należy użyć słowa kluczowego var w następujący sposób:
var name;
Sama deklaracja tworzy nazwę i nic więcej. W tym momencie zmienna istnieje, ale ma specjalną wartość niezdefiniowaną, ponieważ nie została jeszcze do niej przypisana żadna wartość.
⚠️ Uwaga dotycząca wersji: var to oryginalne słowo kluczowe deklaracji, które nadal działa w każdej przeglądarce. Dodano w ES6 (2015) niech oraz const, które są słowami kluczowymi nowoczesny JavaSkrypt używa. Oba są porównywane z var dalej na tej stronie.
Przypisz wartość do zmiennej
Możesz przypisać wartość do zmiennej podczas deklarowania zmiennej lub po jej zadeklarowaniu.
var name = "John";
OR
var name; name = "John";
Obie formy kończą się tym samym rezultatem. Pojedynczy znak równości to operator przypisania: kopiuje wartość po prawej stronie do zmiennej po lewej stronie. Nie jest to test równości, który jest zapisywany jako == lub === i należy do zmiennej po lewej stronie. Instrukcje warunkowe.
Nazewnictwo zmiennych
Chociaż możesz nadawać zmiennym dowolne nazwy, dobrą praktyką programistyczną jest nadawanie im opisowych i zrozumiałych nazw. Co więcej, nazwy zmiennych powinny zaczynać się od litery i rozróżniają wielkość liter. W związku z tym zmienne studentname i studentName różnią się, ponieważ litera n w nazwie jest inna (n i N).
Cztery zasady decydują o tym, czy dana nazwa jest w ogóle legalna:
- Pierwszym znakiem musi być litera, znak dolara lub podkreślenie — nigdy cyfra.
- Po pierwszym znaku dozwolone są litery, cyfry, znaki dolara i podkreślenia.
- Nie można używać spacji, dlatego też pomysł składający się z dwóch słów jest łączony jako studentName, a nie pozostawiany jako dwa słowa.
- Słów zarezerwowanych, takich jak var, let, const, class i return, nie można używać ponownie jako nazw.
Zgodnie z konwencją JavaNazwy skryptów korzystają ze standardu camelCase, więc pierwsze słowo zaczyna się małą literą, a każde kolejne zaczyna się wielką literą: firstName, totalPrice, isLoggedIn.
Poniższy skrypt deklaruje dwie zmienne, stosuje do nich pięć operatorów arytmetycznych i zapisuje każdy wynik na stronie. Spróbuj sam:
<html>
<head>
<title>Variables!!!</title>
<script type="text/javascript">
var one = 22;
var two = 3;
var add = one + two;
var minus = one - two;
var multiply = one * two;
var divide = one/two;
document.write("First No: = " + one + "<br />Second No: = " + two + " <br />");
document.write(one + " + " + two + " = " + add + "<br/>");
document.write(one + " - " + two + " = " + minus + "<br/>");
document.write(one + " * " + two + " = " + multiply + "<br/>");
document.write(one + " / " + two + " = " + divide + "<br/>");
</script>
</head>
<body>
</body>
</html>
var vs let vs const w nowoczesnym JavaScenariusz
Tylko var istniał, kiedy JavaSkrypt został napisany po raz pierwszy i ma dwie cechy, które zaskakują początkujących: można go deklarować bezgłośnie i ignoruje granice bloków. Aby rozwiązać oba te problemy, dodano let i const. Poniższa tabela zestawia te trzy słowa kluczowe obok siebie.
| Zachowanie | było | niech | const |
|---|---|---|---|
| Zakres | Cała funkcja | Blok otaczający | Blok otaczający |
| Można ponownie przypisać | Tak | Tak | Nie |
| Można ponownie zadeklarować w tym samym zakresie | Tak | Nie | Nie |
| Wartość wymagana w wierszu deklaracji | Nie | Nie | Tak |
| Przeczytaj przed deklaracją | Zwraca wartość niezdefiniowaną | Błąd odniesienia | Błąd odniesienia |
Prosty nawyk sprawdza się niemal w każdym przypadku: sięgnij po const najpierw przełącz się na niech moment, w którym wartość musi zostać rzeczywiście zmieniona, np. licznik wewnątrz jednego z JavaPętle skryptui zachowaj var do odczytu starego kodu, zamiast pisania nowego.
Zakres zmienny i podnoszenie w JavaScenariusz
Zakres decyduje, które części skryptu mogą widzieć zmienną. Deklaracja var należy do funkcji, która ją zawiera, więc pomija każdy blok if lub for wewnątrz tej funkcji. Deklaracja let lub const należy do pary nawiasów klamrowych, w których się znajduje, i znika poza nimi.
function demo() { if (true) { var wide = "visible throughout demo()"; let narrow = "visible only inside these braces"; } console.log(wide); console.log(narrow); }
Pierwszy plik console.log drukuje swój ciąg. Drugi zgłasza błąd ReferenceError, ponieważ po zakończeniu bloku if zmienna narrow przestaje istnieć.
Podnoszenie jest drugą połową opowieści. JavaSkrypt rejestruje każdą deklarację w zakresie, zanim wykona choćby jedną linię w tym zakresie. Nazwa zmiennej jest rejestrowana i ustawiana na niezdefiniowaną, więc jej wczesny odczyt jest dozwolony, ale bezużyteczny. Nazwa let lub const jest rejestrowana bez wartości, a przerwa między początkiem bloku a linią deklaracji nazywana jest czasowa martwa strefa.
console.log(a); var a = 1; console.log(b); let b = 2;
Pierwszy wiersz wyświetla undefined. Trzeci wiersz kończy się komunikatem „Cannot access 'b' before initialization” — błąd, który sprawia, że let jest bezpieczniejszy niż var, ponieważ wskazuje na prawdziwy błąd, zamiast go ukrywać.
Typowe błędy przy deklarowaniu JavaZmienne skryptu
Pięć komunikatów odpowiada za większość komunikatów konsoli, które początkujący widzą podczas nauki zmiennych. Każdy z nich wskazuje konkretną przyczynę, więc rozwiązanie zazwyczaj mieści się w jednym wierszu.
| Komunikat konsoli | Spowodować | Fix |
|---|---|---|
| Błąd składni: Identyfikator „x” został już zadeklarowany | let lub const użyte dwukrotnie dla tej samej nazwy w jednym bloku | Ponownie użyj istniejącej zmiennej lub zmień nazwę drugiej |
| TypeError: Przypisanie do zmiennej stałej | Stałej nadano nową wartość | Zadeklaruj to za pomocą let, jeśli wartość musi zostać zmieniona |
| ReferenceError: Nie można uzyskać dostępu do „x” przed inicjalizacją | Odczytano let lub const w strefie martwej czasowo | Przenieś odczyt poniżej linii deklaracji |
| Błąd odniesienia: x nie jest zdefiniowane | Nazwa ta nigdy nie została podana lub została błędnie napisana | Złóż oświadczenie lub popraw pisownię i wielkość liter |
| undefined pojawia się tam, gdzie oczekiwano wartości | Zmienna została zadeklarowana, ale nigdy nie przypisana | Przypisz wartość przed pierwszym odczytem |
Dodanie „use strict” na początku pliku powoduje, że cicha wersja czwartego przypadku – przypisanie do nazwy, która nigdy nie została zadeklarowana – staje się widocznym błędem, dlatego należy go stosować w każdym nowym skrypcie. Te same reguły zmiennych są przenoszone bez zmian do tablice, obiektyi kod po stronie serwera napisany dla node.js.
