Правила хорошего тона, при написании кода на JavaScript

Все мы хотим чтобы наши программы делали, то что мы задумали, а не то что мы написали. А все потому что часто мы ожидаем от программы совсем не того поведения, которое заложили в нее собственными руками. Чтобы уменьшить количество нежелательных сюрпризов нужно придерживаться простых и действенных правил написания программ на JavaScript. Читаем и комментируем.

Думаю как лучше сделать множественную Ajax загрузку

Решил немного рассказать о том, что я делаю сейчас, в эту самую минуту. Итак, задача у меня довольно простая — есть несколько источников информации о статьях. Мне нужно последовательно опросить эти источники путем отправки AJAX запроса и по мере получения ответов вывести результат на экран. Пока у меня получился вот такой код:

Обработка PUT метода в ChicagoBoss (Erlang)

При реализации RESTful приложения столкнулся с тем, что не смог получить через методо «Req:post_param» значения переменных, которые передаются методом PUT. Немного погуглив нашел следующий вариант решения: {struct, Params} = mochijson:decode(Req:request_body()), Id = proplists:get_value(«id», Params), B = lists:map(fun({Key,Value})-> save_fields(Key, Value, Id) end, Params), {json, [{variable_name_space, B}]}. Не очень нравится использовать mochijson:decode, возмжно, кто-то может подсказать более […]

Зачем вместо «undefined» использовать «void 0»

Народ, встретил в коде Backbone.js кучу случаев когда вместо конструкции: «if (undefined == someVariable)» используется такой вариант:«if (void 0 == someVariable)». Хоть убейте меня, но первый вариант с undefined мне нравится в тысячу раз больше, так как нагляднее и понятнее. Возможно я не знаю какого-то тайного смысла в использовании второй конструкции. В чем прикол-то? Кто-нибудь […]

Про медленное копирование файлов в HPUX

Недавно я обозначил проблему медленного копирования файлов в HPUX, проанализировав ситуацию, я нашел причину замедления и об этом хочу рассказать далее.

Еще пара слов про наследование прототипов

Пару постов назад писал про косяк с инициализацией переменных в JS. Косяк у меня в голове, а не в реализации наследования прототипов, естественно. Решил в догонку накидать еще один простенький пример, который уж точно поставит все точки над i:

Опять наступил на грабли с инициализацией переменных в JavaScript

Сколько раз уже наступал на эти грабли, но все никак не могу запомнить, что инициализировать переменные следующим образом в JS нельзя: function SomeClass(){} SomeClass.prototype = { some_array :[] // типа делаю первоначальную инициализацию для каждого объекта } a = new SomeClass(); b = new SomeClass(); a.some_array.push(‘test’); alert(a.some_array); // как и ожиадется возвращает [‘test’] alert(b.some_array); // […]