Created
February 2, 2015 09:02
-
-
Save Dmitry-Klymenko/d058bf693da36f3c4201 to your computer and use it in GitHub Desktop.
Базовый JavaScript - объяснение для чайников
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/********************************* | |
* Вступление в 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