Все в программировании структурировано, подчиняется логике, алгоритмизированно.
Написание программы требует в первую очередь не знания языка, а умения строить логические цепочки, связывать события между собой, т.е. строить алгоритмы.
Для построения алгоритмов рекомендуется использовать блок-схемы. Первое время студентам настоятельно рекомендуется строить блок-схемы даже для самых простых задач, далее - только для тех, которые кажутся им сложными.
Блок-схемой называется графическое представление алгоритма. В блок-схеме шаг или последовательность шагов алгоритма представляется в виде блока, а между блоками устанавливаются связи.
Начало и конец алгоритма изображаются скругленными прямоугольниками, обычные действия - прямоугольниками, условия - ромбами, ввод и вывод данных - параллелограммами. Для более подробного ознакомления с блок-схемами читайте википедию на эту тему, и см. правило 2.
Для примера построим блок-схему алгоритма написания программы. Рекомендуется использовать Google Drawings (для этого создаем почту gmail, заходим на google drive, new->more->google drawings document)
Алгоритм, и, следовательно, программа его реализующая, включает в себя те или иные операции (код) над разнообразными данными.
2 + 2
В примере выше данными являются числа 2, кодом - оператор "+"
REPL (от англ. read-eval-print loop — цикл «чтение — вычисление — вывод») — форма организации простой интерактивной среды программирования в рамках средств интерфейса командной строки. википедия
REPL позволяет выполнять небольшие простые части кода (обычно часть строки-несколько строк) и сразу же видеть результат работы этого кода. Это очень удобно при изучении новых языков программирования, а также для экспериментов и отладки. Разобравшись с чем-то новым с помощью REPL строки кода могут быть добавлены в бОльшую программу.
Что происходит в REPL?
Вы в любой момент можете взять интересующую Вас часть кода и проверить в REPL
Переменной называется поименованная область в памяти, где хранятся данные. Переменная является ярлыком, меткой для определенной структуры данных определенного типа в оперативной памяти. Для того, чтобы создать переменную и записать в нее значение, используется оператор присвоения (=). Переменная может получать свое значение из других переменных с помощью операций над ними или другого кода. В целом можно сказать что код пишется для того, что бы одни данные (представленные в коде переменными) преобразовать к другим данным, которые нужны в результате исполнения программы.
Тип данных (тип) — множество значений и операций на этих значениях. Все виды данных в языках программирования можно отнести к двум группам: скалярные (простые) типы данных и структурированные (составные) типы данных.
и другие.
На этом уроке мы работаем только со скалярным типом данных Number (число) и структурированным типом данных String(строка), представляющим собой последовательность символов. Подробнее структурированные типы данных будут рассмотрены на следующих уроках.
Далее представлены переменные различных типов:
var hands = 2; //количество рук
var fingersOnTheHand = 5; //количество пальцев на руках
var fingersOnTheFoot = fingersOnTheHand //на ногах - столько же
var foots = 2; //количество ног
var isEvening = true //сейчас вечер? - истина
var isSkyRed = false //небо красное? - ложь
var alphabet = "abcdefghijklmnopqrstuvwxyz" //строка с алфавитом
var capitalizedAlphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZ" //строка с алфавитом
Javascript - язык со нестрогой динамической типизацией.
Динамическая типизация означает, что одну и ту же переменную можно сначала инициализировать строкой, потом числом, потом булевым значением, и так далее. Языки со статической типизацией, как язык C, Java, подобного не позволяют.
Нестрогая типизация означает, что язык может сам определять и менять тип переменной в зависимости от контекста. К примеру, строка "1" может быть интерпретирована как число 1 в математических операциях, абсурдных для строки. У этого есть плюсы и минусы, однако надо быть аккуратным в использовании таких возможностей языка, из-за вероятности возникновения трудноустраняемых ошибок.
var totalFingers = foots*fingersOnTheFoot + hands*fingersOnTheHand //сколько всего пальцев на ногах и руках?
var numberOfLimbs = totalFingers / fingersOnTheHand //сколько у человека конечностей?
var numberOfHands = numberOfLimbs - foots //сколько у человека рук, если известно количество конечностей и количество ног?
var nextMonthWeekDay = ((31 % 7) + 5) % 7 //в какой день недели будет следующее 1е число, если в этом месяце 31 день и начался этот месяц в субботу?