Вход

Просмотр полной версии : Ваши самые частые ошибки?


Diphenyl Oxalate
28.02.2017, 20:41
Что вы чаще всего видите в консоли, когда после очередного изменения падает весь скрипт?

У меня это:

- опечатки (не закрыл скобку, кавычку и т.д.)

- описки

var elem = document.createElement("DIV");
document.body.appendChild("DIV"); // WRONG_ARGS_ERR
// или
var elem = document.body.createElement("DIV");

Или лишняя точка с запятой при перечислении в объекте, которую по привычке добавляешь ставишь после длинной строки:

var params = {
// [...]
// [...]
cellDefaultStyles : "длинная-длинная" +
"строка со стилями";
}

Здесь:

if ( N.indexOf("px") != -1 )

всё хорошо, но только пока в N не попадёт какой-нибудь event.clientX.

Порой случается маразм при копировании небольших кусков кода:

var Header = document.createElement("DIV");
document.body.appendChild(Header);
Header.style.cssText = options.headerStyles;

var Content = document.createElement("DIV");
document.body.appendChild(Header);
Header.style.cssText = options.contentStyles;

elem.style.heigth
elem.style.visibility = "none";

Бессмертная классика.

<script type="text/javascript>
// [...]
// [...]

Можно впасть в психоз, /*комментируя*/ куски кода один за другим. В итоге даже простой алерт не работает, консоль молчит, привычная картина мира начинает сыпаться.
А я ещё люблю при написании скрипта отбить всё переносами строки, чтобы html не отвлекал и перед глазами был только код на js, т.е. этого <script> мне вообще не видно.

elem.style.top = fn(event.clientX);

Обычно ошибку видно сразу, но только если параметры не обрабатываются в нескольких местах... Тогда отладка может занять (http://javascript.ru/forum/project/67221-otpusk-skuchno.html#post443397) до двух часов, ведь ошибку ищешь в формулах, когда на деле просто перепутаны top и left.

for (var i = 0; i < K; i++) {
elems[i].onclick = function () {
Fn(i); // всегда будет подавать K
// если вы недостаточно быстрый, чтобы
// кликнуть до того, как отработает for (шутка)

destus
01.03.2017, 07:17
Очень не хватает Elvis оператора.

var o = {}
if (o.coords.lat) {}
//Uncaught TypeError: Cannot read property 'lat' of undefined

Ну а так, большинство опечаток/ошибок решаются/фиксятся на этапе написания кода, благодаря IDE и линтеру. В TypeScript, с этим ещё проще.

palinka
21.05.2017, 06:22
да такие ошибки у каждого бывают. Это скорее описки, нежели чем ошибки.

j0hnik
31.08.2017, 08:40
Diphenyl Oxalate,
Если Sublime пользуетесь, установите Sublime Linter, jslint
https://habrahabr.ru/post/262137/
и скобки, точки с запятой останутся в прошлом.

у меня самые частые = опечатки в названиях селекторов и кривые регулярки =(

ksa
31.08.2017, 09:09
установите Sublime Linter, jslint
https://habrahabr.ru/post/262137/
и скобки, точки с запятой останутся в прошлом.
Нужно сразу набирать парные символы и сразу ставить ";"... Уже много лет никаких проблем... ;)

MallSerg
31.08.2017, 11:53
вера в себя, доверие к людям.

Rasy
31.08.2017, 15:35
опечатки в названиях селекторов
Для этого использую отдельный объект с классами. А дальше тот же автоподбор в саблайме.

nerv_
01.09.2017, 14:36
доверие к людям
++

ruslan_mart
04.09.2017, 10:40
div1.onclick = this.handler.bind(this);
div2.onclick = this.handler.bind(this, true);

...handler = function(isDiv2) {
if(isDiv2) {
...
}
}

Всегда сработает условие isDiv2, потому что по дефолту в аргумент придёт объект Event. Поэтому нужно биндить false.

derevyanayapalochka
28.10.2017, 22:28
Как правило опечатки,либо скобки забудешь закрыть,да и при копировании кодов всякое бывает.