Skip to content

Instantly share code, notes, and snippets.

@Dmitry-Klymenko
Created February 2, 2015 09:02
Show Gist options
  • Save Dmitry-Klymenko/d058bf693da36f3c4201 to your computer and use it in GitHub Desktop.
Save Dmitry-Klymenko/d058bf693da36f3c4201 to your computer and use it in GitHub Desktop.
Базовый JavaScript - объяснение для чайников
/*********************************
* Вступление в JavaScript
*********************************/
function main() {
// Это однострочный комментарий - здесь можно писать все что угодно - Адвордс Скриптинг эту строчку проигнорирует
/* А это многострочный комментарий
очень полезен для "отключения" строчек кода или написания целой кучи пояснений к коду
*/
// Фукция main является отправной точкой выполнения и ее наличие является обязательной (только для скриптов AdWords)
// Давайте начнем с переменных JavaScript
var clubName = 'Бойцовский клуб'; // объявляем переменную с именем clubName и значением Бойцовский клуб Сейчас эта переменная содержит в себе строку
var rule1 = "Не разговаривать о бойцовском клубе"; // Кавычки могут быть одинарные или двойные, важно чтобы они совпадали: строка открывалась и закрывалась одинаковыми кавычками
var members = 12; // переменная с целочисленным числом
var dues = 3.50; // переменная с дробным числом
var isAcceptingNewMembers = true; // флаговая (boolean) переменная - правда или ложь. Используется для условных переходов: если "правда" то делаем это, если же "ложь" то что-то другое
/*
Массивы -
*/
// В массиве можно складывать много переменных разного типа, рекомендуется не смешивать их
var memberNames = ['Дима','Владислав','Наташа']; //можно еще так: = new Array('Дима','Владислав','Наташа');
// доступаться к переменным можно по индексам
var coolestMember = memberNames[0]; // в переменной coolestMember теперь хранится значение Дима
// 0 это индекс первого элемента массива, 1 индекс второго и т.д. Да - в JavaScript счет начинается в нуля, а в километре 1024 метра
// Чтобы узнать сколько всего элементов массива нужно прочитать значение свойства length (длинна) массива
var numberOfMembers = memberNames.length; // Будет равно 3 - точка разделяет объект и его свойство или метод
var dailyFights = numberOfMembers*2; // звездочка это оператор умножения - результат 6
/* '/' - оператор деления, '+' и '-' математически складывают и вычитают числа. Плюс так же может использоваться для склеивания строковых переменных
*/
// Если вы хотите сгруппировать несколько переменных разного типа в логический объект - нужно использовать JavaScript Object
// переменные объекта называются свойствами
// функции объекта (см ниже) называются методами
var fightClub = { //объявляем объект с именем fightClub
clubName : 'Бойцовский клуб', // член объекта (свойство) - при объявлении объекта для присваивания значения вместо '=' используется ':'
rules : ["Не говорить обойцовском клубе.", // переменные разделяются запятыми - квадратные скобки создают массив (см выше)
'Не говорить обойцовском клубе.'], // здесь мы создали массив как часть объекта с именем rules содержащимдва правила
memberNames : ['Дима','Владислав','Наташа'], // еще один массив с членами клуба
dues : 3.50, //числовое свойство объекта
foundedYear : 1999 //числовое свойство объекта
};
/*
* "Вывод в лог" традиционный для программирования способ вывода промежуточных (и не только) результатов и текущего статуса.
* Полезно для отладки и вывода результатов. Для разных платформ, разные способы
* Если JavaScript выполняется как командная строка в Windows, то WScript.Echo('строка');
* Если JavaScript выполняется в браузере, то console.log('строка');
* Если JavaScript выполняется в среде AdWords скриптинг, то Logger.Log('строка');
*
*/
Logger.log(fightClub.clubName); // выведет в лог Бойцовский клуб
Logger.log(fightClub.memberNames[0]); // выведет в лог Дима
// Простой пример для "если, то" конструкции
if(numberOfMembers > 10) { // если количество членов клуба больше 10
dues += 1.00; // то увеличить входную плату на единицу. '+=' обозначает 'прибавить к текущему'
} else { // иначе
dues -= 1.00; // уменьшить
}
// Операторы сравнения >, <, ==, ===, <=, >= позволяют сравнивать значения переменных
// Операторы & и || являются операторами логического сравнения
// Например нужно выполнить условие только если количество членов клуба больше 10 и год основания меньше 2000: if(numberOfMembers > 10 & foundedYear < 2000)
// Циклы
var i = 0; // переменная считающая итерации цикла
while(i < memberNames.length) { // пока i меньше чем количество членов клуба войти внутрь цикла
Logger.log(memberNames[i]); // выведем в лог имя члена клуба
i++; // увеличим счетчик. 'i++' обозначает прибавить единицу к значению содержащемуся в i
}
// Классический цикл. Следует это читать как: 'начиная для каждого значения индекса i начиная с нуля увеличивая с каждым шагом на один выполнить тело цикла'
for(var i = 0; i < memberNames.length; i++) {
Logger.log(memberNames[i]);
}
// И еще один цикл. Читается как для каждого значения содержащегося в массиве memberNames выполнить операцию
for(var index in memberNames) {
Logger.log(memberNames[index]);
}
// Чтобы выйти из цикла до его окончания используйте break - выведется в лог только имя первого члена клуба
// оператор сравнени '===' проверяет равенство объекта, вместо проверки по значению '=='
for(var i in memberNames) {
if(memberNames[i] === 'edward') {
break;
}
Logger.log(memberNames[i]);
}
// Функции - с их помощью удобно группировать кусочки кода (инструкций к выполнению) чтобы их можно было вызывать множество раз
// Общее правило - видишь повторяющийся код - выдели его в функцию или метод. Обязательно!
function main() {
/*Здесь находится код который выполнится при вызове функцииб а само имя функции говорит AdWords Scripts, что выполнение скрипта надо начать с этой функции*/
}
//пример объявления метода объекта
var fightClub = {
// ... объявление других переменных
fight: function() {
Logger.log('Битва началась');
},
};
// Теперь вызываем функцию и наблюдаем в логе наше сообщение
fightClub.fight();
//JavaScript по русски (http://habrahabr.ru/post/240219/)
// Ну наконец-то мы готовы к AdWords Scripts
AdWordsApp.currentAccount();
Utilities.jsonParse('{}');
AdWordsApp.keywords().withLimit(10).get();
// Как работает конструкция выше?
AdWordsApp // это объект доступный для Адвордс скриптинга - через него мы получаем доступ к эккаунту Адвордс
.keywords() // функция которая возвращает селектор всех ключей в нашем эккаунте
.withLimit(10) // у которого есть функция ограничивающая количество возвращаемых значений
.get(); // и еще одна функция "получить"
// Выглядит страшно, но не так страшен черт как его малюют пробуйте, эксперементируйте, задавайте вопросы
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment