Существует одна дополнительная вещь упомянуть: функция, которую не должны на самом деле завершать урожаи. Я записал код как это:
def fib():
last, cur = 0, 1
while True:
yield cur
last, cur = cur, last + cur
Тогда я могу использовать его в другом коде как это:
for f in fib():
if some_condition: break
coolfuncs(f);
Это действительно помогает упростить некоторые проблемы и делает некоторые вещи легче работать с.
Вы можете найти эту популярную тему прямо здесь, на сайте StackOverflow.com
. Ловушки jQuery, которых следует избегать
Один за другим очень интересные полезные советы.
Вот еще несколько, которые я нашел в моих закладках:
То, что я лично начал делать, это своего рода из Венгерской нотации приложений для наборов jQuery, добавив к этим переменным префикса $
var someInt = 1;
var $someQueryCollection = $( 'selector' );
, я обнаружил, что по мере роста моих фрагментов jQuery это становится бесценным, не только в продвижении хранения наборов jQuery как переменные, но чтобы помочь мне отслеживать, какие переменные на самом деле являются наборами jQuery.
Ненавязчивый JavaScript (разделение разметки и поведения)
В те времена это было обычным явлением поместите обработчик кликов внутрь разметки. Теперь рекомендуется не писать код JS внутри разметки, а включать его через события DOM.
Прогрессивное улучшение
Пользователь получает больше возможностей, если он использует браузер, соответствующий стандартам, и / или включил JavaScript. Веб-сайт / веб-приложение по-прежнему доступны, даже если у них более старый браузер или отключен JS.
Обнаружение функций, а не обнаружение браузера
Оставляя в стороне вышеупомянутые моменты, я бы действительно сосредоточился на передаче сообщения (нарушая заранее заданное понятие ), что JavaScript - игрушечный язык. Я видел слишком много разработчиков, которые так думают, и с тех пор все идет под откос.
Работа jQuery НЕ совпадает с работой JavaScript, даже если это одно и то же. jQuery работает с селекторами CSS, такими как имена классов и идентификаторы элементов. Чтобы выбрать элемент в jQuery, вы:
$("#yourID") or $(".yourClass") or $("div") or $("#yourID p") etc
И вы получите набор всех элементов на странице, которые соответствуют вашим критериям. Затем вы можете выполнять свои действия со ВСЕМИ этими элементами без какого-либо цикла. Это важно помнить:
$(".yourClass").click(function(){
//do stuff
});
повлияет на все элементы, к которым прикреплен .yourClass
. Один совет: если вы собираетесь получить доступ к $ (this)
, вы должны сохранить его как локальную переменную:
$(".yourClass").click(function(){
var $this = $(this);
});
, так как это ускорит вашу функцию.