Jaka jest differnce międzyRóżnica TypeError i ReferenceError
TypeError: ... is undefined
i
ReferenceError: ... is not defined
?
Jaka jest differnce międzyRóżnica TypeError i ReferenceError
TypeError: ... is undefined
i
ReferenceError: ... is not defined
?
A ReferenceError
występuje, gdy próbujesz użyć zmiennej, która w ogóle nie istnieje.
A TypeError
występuje, gdy zmienna istnieje, ale operacja, którą próbujesz wykonać, nie jest odpowiednia dla typu wartości, którą zawiera. W przypadku, gdy szczegółowy komunikat mówi "nie jest zdefiniowany", może się tak zdarzyć, jeśli masz zmienną, której wartością jest specjalna wartość undefined
i próbujesz uzyskać dostęp do jej właściwości.
Aby uzyskać więcej informacji na ten temat, zobacz stronę http://javascriptweblog.wordpress.com/2010/08/16/understanding-undefined-and-preventing-referenceerrors/.
Sześciosylabową JavaScript typów błędów
Kod JavaScript 1,5 opis określa główne sześć rodzajów błędów, takie jak:
EvalError: Podnoszone gdy funkcje Eval() stosuje się w nieprawidłowy sposób.
RangeError: Wywoływany, gdy zmienna numeryczna przekroczy dozwolony zakres.
ReferenceError: Wywoływany, gdy używane jest nieprawidłowe odwołanie.
Błąd składni: Wywoływany, gdy wystąpi błąd składni podczas analizowania kodu JavaScript.
TypeError: Wywoływany, gdy typ zmiennej nie jest zgodny z oczekiwaniami.
silny URIError tekst: Raised gdy encodeURI()
lub decodeURI()
funkcje stosowane są w nieprawidłowy sposób.
Rozważmy następujący kod:
function foo(){
var d=1234;
console.log(d.substring(1,2));
}
foo();
będzie to miało następujące wyjścia:
Wyjątek: TypeError: d.substring nie jest funkcją To dlatego użyliśmy niewłaściwy typ (numer) dla danej operacji (podłańcuch, który oczekuje ciągu znaków). Obiekt TypeError reprezentuje błąd, gdy wartość nie jest oczekiwanego typu.
function foo(){
var d=1234;
console.log(c);
}
foo();
będzie to miało następujące wyjścia:
Wyjątek: ReferenceError: c nie jest zdefiniowana To dlatego, że punktem odniesienia dla zmiennej „c” nie istnieje w żadnym zakresie lokalnym lub globalnym i nadal jesteśmy próbuje go użyć. Wyjątek ReferenceError jest generowany, gdy uzyskuje się dostęp do nieistniejącej zmiennej.
Standard ECMAScript określa, w których scenariuszach występuje każdy typ błędu. [Zobacz tutaj] (http://ecma-international.org/ecma-262/5.1/#sec-15.11.6.3), aby uzyskać pełną listę tych scenariuszy. –
Czy możesz podać przykłady kodu, które rzucają te błędy? –