Заметки о JavaScript

Joined September 2013
Photos and videos
Сделать архив папки, исключив то, что игнорируется Гитом: # tar -cvf httpdocs.tgz -X .gitignore . Ключ "-X" означает "exclude from file"
// валидный JavaScript и валидный JSON { "foo": "bar" } // валидный JavaScript и НЕвалидный JSON { foo: "bar" } #JavaScriptGarden
Очень правильно о крайностях, оптимизации и пробелах в знаниях. Принимать 1 раз на ночь в течение проекта goo.gl/54lQgH #JavaScript

var arr = [1, 2, function(a) { alert(a) }, 3, 4]; arr[2]('Функция — это значение');
Разминка для мозга: if ('00') {.. // true if (false == '00') {.. // true if (false) {.. // false
null и undefined нестрого равны == друг другу и не равны больше ничему. Преобразование null в число даёт 0, а undefined — NaN. #JavaScript
1
При сравнении значения преобразуются к числам: '2' > 1 //true '01' == 1 //true Но если оба операнда строки,они сравниваются лексографически.
#Chrome и #Safari похожи, но всё-таки разные. Для HTML/CSS у них один движок: #WebKit, а для #JavaScript — разные: Google V8 и Squirrelfish.
Ещё о логических операторах. && возвращает первое значение, которое приводится к false или последнее — к true. (1 && true && 'str') == 'str'
for (var i=0; i<5; i ) for (var i=0; i<5; i) Оба цикла будут работать с одинаковыми значениями, тк в цикл всегда попадает увеличенное i.
Брейкпоинт в #Chrome можно установить либо на вкладке Sources панели инструментов кликом по номеру строки, либо в коде командой debugger.
Диспетчер задач в #Google #Chrome: SHIFT Esc (не работает в GMail).
Унарный плюс приводит строку к числу: var a = '1', b = '2', x = a b, // '12' y = a b; // 3
Современные браузеры создают переменные для элементов, у которых есть id: <div id="test"></div> <script>alert(test);</script>
Ключевое слово var задает переменную в текущей области видимости. Без него переменная попадает в глобальный объект window.
Оператор || в #JavaScript возвращает не true/false, а само значение - первое, которое приводится к true (или последнее к false).