
Для языка Javascript очень важно количество байт кода – это напрямую влияет на производительность. Во многом из-за этого, как я думаю, придумано множество сокращений. Также эти сокращения записи, позволяют сделать код более читабельным и писать его быстрее.
Инкремент/Декремент/Умножение/Деление
Вместо:
growCount = growCount + 1; shrinkCount = shrinkCount - 1;
Намного проще и красивей написать:
growCount ++; shrinkCount --;
Для сложения\вычитания\умножения\деления
growCount += 100; //увеличиваем переменную growCount на 100 shrinkCount -= 2; //уменьшаем переменную shrinkCount на 2 moreCount *= 5; // умножаем переменную moreSweets на 5 lessCount /= 3; // делим переменную lessApple на 3
Условный оператор.
Следующая конструкция, знакомая многим из других языков программирования экономит сразу несколько строк кода. Было:
if(myAge > legalAge) {
canDrink = true;
}
else {
canDrink = false;
}
Стало:
var canDrink = (myAge > legalAge) ? true : false;
Заполнение ассоциативного массива.
Многие привыкли делать это следующим образом:
var language = new Array(); language['Language Name'] = 'Javascript'; language['Type'] = 'Object-oriented'; language['Framework'] = 'jQuery'; language['Other'] = 'Improve Usability';
Javascript же предлагает следующую конструкцию:
var language = {
'Language Name' : 'Javascript',
'Type' : 'Object-oriented',
'Framework' : 'jQuery',
'Other' : 'Improve Usability'
};
Значение переменной по умолчанию.
Вместо много-строковой конструкции:
function displayValues(limit) {
var length;
if(limit) {
length = limit;
} else {
length = 10;
}
}
Можно просто написать:
function displayValues(limit) {
var length = limit || 10;
}
Если функции не было передан параметр limit, то length будет равен значению по умолчанию – 10
Для того, чтобы переменная length получила значение 10 должны быть выполнены следующие условия limit =
- false
- 0
- null
- undefined
- empty string
Во всех остальных случаях переменная length будет равна переменной limit .
Продолжение следует…




июля 7, 2010 в 18:36
Насчет удобства чтения категорически не соглашусь. Особенно для малоопытных разработчиков или тех, кто вынужден метаться от одного языка к другому, такие сокращения могут показаться сложными, или как минимум они усложнят чтение кода. А на поддержке чаще всего сидят как раз малоопытные мечущиеся разработчики, но сделать надо всегда быстро. Более верно использовать обфускаторы перед выкаткой на продакшн, а разработческую версию держать максимально понятной и хорошо документированной.
июля 7, 2010 в 18:52
В целом, согласен, но статья как раз для того, чтобы улучшать культуру кода начинающих Javascript разработчиков. Когда привыкаешь, более компактный код всегда лучше воспринимается, глазу как-то ближе. По поводу обуфускаторов и сжатия кода, такие вещи уже как де факто.