Niewłaściwe użycie kodu JavaScript
W tym rozdziale omówimy wykorzystanie błędów JavaScript.
Błąd operator przypisania aplikacji
W programie JavaScript w przypadku korzystania z instrukcji warunkowej, jeżeli operator przypisania jest znak równości (=) wygeneruje wynik błędu, właściwym podejściem jest użycie porównanie dwóch jednakowych znaków (==).
if warunkowego zwraca false (oczekujemy), ponieważ x jest równy 10:
if warunkowego zwraca prawdę (nie, że można się spodziewać), wykonywana jest instrukcja, ponieważ warunki przypisania x 10,10 jest prawdziwe:
warunkowa if zwraca false (nie to, czego można się spodziewać), wykonywana jest instrukcja, ponieważ warunki przypisania x 0,0 jest fałszywe:
Zwraca wartość zmiennej zadania. |
Porównanie Typowe błędy
W konwencjonalnym porównania, typ danych jest ignorowana, jeśli następujące oświadczenie warunek zwraca true:
W rygorystycznej operacji porównania, obliczenia tożsamości === operatora, podczas gdy wartość wyrażenia typu kontroli, następujące warunki if zwraca false:
Ten błąd często występuje w instrukcji switch, przełącznik stwierdzenie obliczana za pomocą operatora tożsamości (===) zostały porównane:
Poniższe przykłady wykona powiadomienie pop:
Poniższe przykłady są niespójne, ponieważ typ nie wykonuje powiadomienie wyskakujące okienka:
Dodawanie i Rozważania przyłączeniowe
Dodawanie dwóch liczb razem.
Ciąg połączenia, aby połączyć dwa.
Dodawanie i JavaScript są połączone za pomocą operatora +.
Następnie widzimy dwa numery razem i podłączone do ciągu liczb i wyróżnienie tytułem przykładu:
Używanie zmiennych dodając wyniki są niespójne:
var y = 5;
var z = x + y; Wyniki // oo to 15
var x = 10;
var y = "5";
var z = x + y; Wyniki // oo to "105"
Spróbuj »
Zwróć uwagę na użycie danych zmiennoprzecinkowych
JavaScript Wszystkie dane są oparte na 64-bitowego typu danych zmiennoprzecinkową (float) do sklepu.
Wszystkie języki programowania, w tym JavaScript, aby precyzję obliczeń zmiennoprzecinkowych danych są trudne do określenia:
var y = 0,2;
var z = x + y Wyniki // oo wynosi 0,3
W przypadku (z == 0,3) // Zwraca false
Spróbuj »
Rozwiązać ten problem, można użyć mnożenie i dzielenie liczb całkowitych do rozwiązania:
JavaScript smyczkowe Branże
Używamy podziały wiersza do uruchomienia instrukcji JavaScript w ciągu:
Jednak w ciągu bezpośredni powrót karetki jest podana dla:
Możemy wybrać narzędzie rozwoju lub naciśnij klawisz F12, aby zobaczyć komunikat o błędzie:
podziały wiersza String trzeba użyć ukośnik (\), w następujący sposób:
Źle średnik
W poniższym przykładzie, ponieważ zła średnik, jeżeli blok zestawienie kod nie zostanie wykonany:
Return ostrożności
JavaScript jest domyślnym automatycznie kończy się na ostatniej linii kodu.
Poniższe dwa przykłady zwracają ten sam wynik (a nie średnik):
JavaScript może być również używany do zakończenia komunikatu wielu linii.
Poniższe przykłady zwrócić ten sam wynik:
Jednakże następujące przykłady wyników zwracane sąniezdefiniowane:
Dlaczego istnieje taki wynik? Ponieważ w języku JavaScript, przykłady spójnego kodu 4 i następującego kodu:
function myFunction(a) { var power = 10; return; // 分号结束,返回 undefined a * power; }
rozwiązać
Jeśli jest to niepełne oświadczenia, co następuje:
var
JavaScript będzie próbował odczytać drugie oświadczenie wiersza:
power = 10;
Jednakże, ponieważ to stwierdzenie jest kompletna:
return
JavaScript automatycznie wyłączyć oświadczenie:
return;
W JavaScript, średnik nie jest obowiązkowe.
Ponieważ powrót jest pełnym zdaniem, będzie to wyłączyć return JavaScript.
Uwaga: Nie należy przełamać linię instrukcji return. |
Użyj nazwy indeksu tablicy
Wiele języków programowania umożliwiają stosowanie nazwy jako indeks tablicy.
Aby używać tej nazwy jako indeks tablicy nazywa się tablicą asocjacyjną (lub hash).
JavaScript nie obsługuje używania nazwy na tablicach Index, jedynie indeksu liczbowego.
Przykłady
osób [0] = "John" ;
osób [1] = "Kowalski" ;
Osoba [2] = 46;
var x = person.length; // Person.length zwraca 3
var y = osoba [0]; // Osoba [0] zwraca "John"
Spróbuj »
W JavaScript, należy użyć nazwy obiektu w postaci indeksu.
Jeśli użyć nazwy jako indeks przy dostępie do tablicy, JavaScript będzie przedefiniować standardową tablicę obiektów.
Po wykonaniu tej operacji, nie będą już wykorzystywane metody i właściwości tablicy, w przeciwnym razie zostanie wygenerowany komunikat o błędzie:
Przykłady
osób [ "firstName"] = " John";
osób [ "lastName"] = " Kowalski";
osób [ "wiek"] = 46 ;
var x = person.length; // person.length powraca 0
var y = osoba [0]; // Osoba [0] zwraca niezdefiniowane
Spróbuj »
Definiowanie elementu tablicy, a na końcu nie można dodać przecinek
Błędy są zdefiniowane:
points = [40, 100, 1, 5, 25, 10,];
Prawidłowa definicja sposób:
points = [40, 100, 1, 5, 25, 10];
Definiowanie obiektu, a na końcu nie można dodać przecinek
Błędy są zdefiniowane:
websites = {site:"本教程", url:"www.w3write.com", like:460,}
Prawidłowa definicja sposób:
websites = {site:"本教程", url:"www.w3write.com", like:460}
Niezdefiniowane Nie Null
W JavaScript, null dla obiektów, dla niezdefiniowanych zmiennych, właściwości i metody.
Przedmioty są zdefiniowane możliwe tylko jako null, inaczej nieokreślone.
Jeśli chcemy sprawdzić, czy obecność obiektu, gdy obiekt nie został jeszcze zdefiniowany wygeneruje błąd.
Źle zastosowanie:
if (myObj !== null && typeof myObj !== "undefined")
Właściwy sposób jest to, że musimy użyć typeof wykryć, czy obiekt został zdefiniowany:
if (typeof myObj !== "undefined" && myObj !== null)
zakres blok
JavaScript nie stwarza nowe możliwości w każdym bloku kodu, ogólny zakres każdego bloku kodu są globalne.
Poniższy kod zmienny i zwraca 10 zamiast niezdefiniowany: