ПредишенСледващото


В предната част на списъка, нека хвърлим един бърз поглед на структурата на съобщението за грешка. Разбирането на структурата помага да разберем грешката, и ще получите по-малък проблем се сблъскате с грешки, които не са представени в този списък, ако.

Типичен грешка от Chrome изглежда така:

Сега към действителната грешка.

Неуловено Тип грешка: неопределени не е функция


Свързани Грешки: брой не е функция, обект не е функция, низ не е функция, Необработена Грешка: "трънки" не е функция, Функция Очаквано

Това се случва, когато се опитате да се обадите, като функция на стойността, когато стойността на функцията не е така. Например:


Тази грешка обикновено се случва, когато се опитате да извикате функция на обекта, но правописна грешка в заглавието.


Несъществуващи свойства на даден обект по подразбиране имат стойността неопределено. Получената в тази грешка.

Други варианти, като например "брой не е функция" се случи, когато се опитате да се обадите на номера, като че ли е функция.

Как да се коригира грешката: проверка на коректността на името на функцията. За тази грешка, номера на реда обикновено се посочва в правилното място.

Неуловено ReferenceError: Невалиден лява страна на задача


Свързани грешка: неуловено изключение: ReferenceError: Не може да се възложи на "functionCall ()", неуловени изключение: ReferenceError: Не може да се възложи на "тази"

Причинява се от опит за присвояване на стойност на това, което е невъзможно да се придаде стойност.

Най-често срещаният пример за тази грешка - в това състояние, ако:


В този пример, програмист случайно използва един знак за равенство, а не две. Изразът "лява страна в присвояване" се отнася до лявата страна на знака за равенство, и, както може да се види в този пример, от лявата страна съдържа нещо, което не може да бъде назначен като грешка.

Как да се коригира грешката: уверете се, че не се опитвате да се придаде стойност на резултата на функцията или ключова дума това.

Неуловено Тип грешка: Преобразуване кръгова структура JSON


Свързани грешка: неуловено изключение: Тип грешка: JSON.stringify: Не е ацикличен Object, Тип грешка: цикличен стойност обект, циркуляр справка в стойността аргумент не се поддържа

Винаги, причинени от кръгова препратка в обект, който след това се предава към JSON.stringify.


Тъй като А и Б в горния пример са свързани помежду си, получената обект не може да се превърне JSON.

Как да се коригира грешката: Премахване на циклични референции, както в примера по-горе, всички обекти, които искате да конвертирате в JSON.

Неочаквано означение;


Свързани грешка: Очаква), липсва), след като списъкът с аргументите

Token в грешката може да се променя - може да се пише "Неочаквано означение]", "Очакван

Как да се определи за грешка: понякога номера на реда не показва правилното място, което го прави трудно да поправите грешката.

Грешка с [] <> () Обикновено се причинява от несъответстващи двойка. Уверете се, че всички ваши скоби покриват двойката. В този случай, номера на реда обикновено означава нещо друго, а не като проблематичен характер.

Неочакван /, свързан с регулярни изрази. Номерът на реда в този случай обикновено е най-подходящия.

Неочакван; обикновено се причинява от символ; в буквален обект или масив, или извикване на функция списъка аргумент. Номерът на реда ще обикновено важи и в този случай.

Неуловено SyntaxError: Неочаквано означение НЕЗАКОННА


Свързани Грешка: Незавършен символни низове, невалидни редове Терминатор

Низът буквално липсва затваряне кавички.

Как да се коригира грешката: Уверете се, че всички линии са правилните затваряне кавички.

Неуловено Тип грешка: Не може да се чете имот "трънки" на нула, неуловени Тип грешка: Не може да се чете имот "трънки" на неопределена


Свързани грешка: Тип грешка: someVal е нула, не можа да се собственост "трънки" на неопределена или нулева референтна

Опитвайки се да прочетете нула или неопределени, като че ли този обект. Например:


Как да се определи грешка обикновено се дължат на печатни грешки. Проверете дали всички променливи, използвани в непосредствена близост до линията, с индикация за грешка правилно назован.

Неуловено Тип грешка: Не може да се зададе свойството "трънки" на нула, неуловени Тип грешка: Не може да се зададе свойството "трънки" на неопределена


Свързани грешка: Тип грешка: someVal е неопределена, не може да се зададе свойството "трънки" на неопределена или нулева референтна

Опитайте се да пиша нула или неопределен, като че ли този обект. Например:


Как да се коригира грешката: тя е твърде обикновено се причинява от грешки. Проверете имената на променливите, в непосредствена близост до линията, с индикация за грешка.

Неуловено RangeError: Максимален размер на стека повикване превишена


Свързани грешка: неуловено изключение: RangeError: Максимална дълбочина рекурсия превишен, твърде много рекурсия, стека преливане

Обикновено причината е неправилно софтуер логика, която води до безкрайно рекурсивно извикване на функция.

Как да се коригира грешката: проверка на рекурсивни функцията на грешки, които могат да ги принуди да се направи рекурсивни повиквания завинаги.

Неуловено URIError: URI деформиран


Подобни грешки: URIError: неправилно образуван URI последователност

Причинява се от неправилна decodeURIComponent повикване.

Как да се коригира грешката: уверете се, че разговорите decodeURIComponent на линия грешки са правилния вход.

XMLHttpRequest не може да зареди някои / URL адрес. Не "Access-Control-Allow-произход" удар с глава присъства на заявения ресурс


Свързани грешка: Cross-Произход Заявка Блокирано: един и същ произход политика се отнема четене дистанционното ресурс в някакъв / URL

Този проблем винаги е свързано с използването на XMLHttpRequest.

Как да се коригира грешката: проверка на коректността на исканата URL, и че отговаря на политиката на един и същи произход. Един добър начин да намерите най-проблематично кода - да погледнем в URL адреса в съобщението за грешка и да я намерите в кода си.

InvalidStateError: Направен е опит да се използва един обект, който не е или вече не е, използваеми


Свързани грешки: InvalidStateError, DOMException код 11

Това означава, че кодът да извикате функция, която не може да се нарече и при сегашното състояние. Обикновено се свързва с XMLHttpRequest когато се опитват да извикате функция върху него, преди да е готова.


В този случай, вие ще получите съобщение за грешка, защото setRequestHeader функция може да се нарече само след извикването xhr.open.

Как да се коригира грешката: погледнете кода в един ред, с индикация за грешка и се уверете, че той се нарича, в точното време, или добавя необходимите разговорите към това (както с xhr.open).

заключение

Послепис Този превод може да се подобри чрез изпращане на PR тук.

Е, добре, тя се разширява идеята за тези, които не разбират. Когато използвате JQuery, тип грешка на «неуловено Тип грешка: неопределени не е функция», който се проведе в дълбините на вашата функция, например, кликнете манипулатор на бутона / връзка / и т.н., ще се показва навсякъде, но не и на функция. По принцип, дори не е близо. Човек може само да предполагам, че последния път, когато се промени нещо и там евентуално. някъде има нещо, което не се взема под внимание или не има запетая (което JavaScript като цяло, също се очаква и съобщение за грешка, ще води до никъде, освен да си функция с грешка)

gygy, на JQuery, най-вече висеше на DOM'a елементи, но тук всичко е просто и отстраняване на грешки и така нататък.

любимата ми: JQuery плъгин (снимки плъзгача) на определена страница на сайта, попада в себе си със съобщение за «недефинирани не е функция». Пада само на тази страница, на самия плъгин се използва успешно в продължение на години и работи по един куп сайтове, без никакви проблеми. Каква е причината? Друг сценарий, издърпа навън различна версия на JQuery, и в резултат на което имаме, е на страница две различни версии на JQuery. И направи нещо функция JQuery тази ситуация по някакъв начин да се справим ...

За тази грешка до отстраняване на грешки на този проблем може да бъде много дълъг период от време, особено ако не сте наясно с последните промени в кода.

Отстраняване на грешки в конзолата на браузъра - това е болка.

Е, хром devtulzy ви покажем такава пълна комин на повикване, и там ще намерите номера на реда във файла, която започна всичко

Свързани статии

Подкрепете проекта - споделете линка, благодаря!