JavaScript был создан программистом Brendan Eich из Netscape и представлен в декабре 1995 года под названием LiveScript. Довольно быстро он был переименован в JavaScript, хотя официальным названием JavaScript является ECMAScript. ECMAScript разрабатывается и поддерживается Международной организацией ECMA (Европейская ассоциация производителей компьютеров).

Что такое JavaScript?
1) JavaScript — язык сценариев, или скриптов. Скрипт представляет собой программный код — набор инструкций, который не требует предварительной обработки (например, компиляции) перед запуском. Код JavaScript интерпретируется движком браузера во время загрузки веб-страницы. Интерпретатор браузера выполняет построчный анализ, обработку и выполнение исходной программы или запроса.

2) JavaScript — объектно-ориентированный язык с прототипным наследованием. Он поддерживает несколько встроенных объектов, а также позволяет создавать или удалять свои собственные (пользовательские) объекты. Объекты могут наследовать свойства непосредственно друг от друга, образуя цепочку объект-прототип.

JavaScript на веб-страницах 1. Подключение сценариев к html-документу

Сценарии JavaScript бывают встроенные , т.е. их содержимое является частью документа, и внешние , хранящиеся в отдельном файле с расширением.js . Сценарии можно внедрить в html-документ следующими способами:

или тело страницы.

Этот способ обычно применяется для сценариев большого размера или сценариев, многократно используемых на разных веб-страницах.

В виде обработчика события .
Каждый html-элемент имеет JavaScript-события, которые срабатывают в определенный момент. Нужно добавить необходимое событие в html-элемент как атрибут, а в качестве значения этого атрибута указать требуемую функцию. Функция, вызываемая в ответ на срабатывание события, является обработчиком события . В результате срабатывания события исполнится связанный с ним код. Этот способ применяется в основном для коротких сценариев, например, можно установить смену цвета фона при нажатии на кнопку:

var colorArray = ["#5A9C6E", "#A8BF5A", "#FAC46E", "#FAD5BB", "#F2FEFF"]; // создаем массив с цветами фона var i = 0; function changeColor(){ document.body.style.background = colorArray[i]; i++; if(i > colorArray.length - 1){ i = 0; } } Change background

Внутрь элемента .
Элемент может вставляться в любое место документа. Внутри тега располагается код, который выполняется сразу после прочтения браузером, или содержит описание функции, которая выполняется в момент ее вызова. Описание функции можно располагать в любом месте, главное, чтобы к моменту ее вызова код функции уже был загружен.

Обычно код JavaScript размещается в заголовке документа (элемент ) или после открывающего тега . Если скрипт используется после загрузки страницы, например, код счетчика, то его лучше разместить в конце документа:

document.write("Введите свое имя");

2. Типы данных и переменные в JavaScript

Компьютеры обрабатывают информацию — данные. Данные могут быть представлены в различных формах или типах. Большая часть функциональности JavaScript реализуется за счет простого набора объектов и типов данных. Функциональные возможности, связанные со строками, числами и логикой, базируются на строковых, числовых и логических типах данных. Другая функциональная возможность, включающая регулярные выражения, даты и математические операции, осуществляется с помощью объектов RegExp, Date и Math.

Литералы в JavaScript представляют собой особый класс типа данных, фиксированные значения одного из трех типов данных — строкового, числового или логического:

"это строка" 3.14 true alert("Hellow"); // "Hellow" - это литерал var myVariable = 15; // 15 - это литерал

Примитивный тип данных является экземпляром определенного типа данных, таких как строковый, числовой, логический, null и undefined .

2.1. Переменные в JavaScript

Данные, обрабатываемые сценарием JavaScript, являются переменными . Переменные представляют собой именованные контейнеры, хранящие данные (значения) в памяти компьютера, которые могут изменяться в процессе выполнения программы. Переменные имеют имя , тип и значение .

Имя переменной, или идентификатор , может включать только буквы a-z , A-Z , цифры 0-9 (цифра не может быть первой в имени переменной), символ $ (может быть только первым символом в имени переменной или функции) и символ подчеркивания _ , наличие пробелов не допускается. Длина имени переменной не ограничена. Можно, но не рекомендуется записывать имена переменных буквами русского алфавита, для этого они должны быть записаны в Unicode.

В качестве имени переменной нельзя использовать ключевые слова JavaScript. Имена переменных в JavaScript чувствительные к регистру, что означает, что переменная var message; и var Message; — разные переменные.

Переменная создается (объявляется) с помощью ключевого слова var , за которым следует имя переменной, например, var message; . Объявлять переменную необходимо перед ее использованием.

Переменная инициализируется значением с помощью операции присваивания = , например, var message="Hellow"; , т.е. создается переменная message и в ней сохраняется ее первоначальное значение "Hellow" . Переменную можно объявлять без значения, в этом случае ей присваивается значение по умолчанию undefined . Значение переменной может изменяться во время исполнения скрипта. Разные переменные можно объявлять в одной строке, разделив их запятой:

Var message="Hellow", number_msg = 6, time_msg = 50;

2.2. Типы данных переменных

JavaScript является нетипизированным языком, тип данных для конкретной переменной при ее объявлении указывать не нужно. Тип данных переменной зависит от значений, которые она принимает. Тип переменной может изменяться в процессе совершения операций с данными (динамическое приведение типов ). Преобразование типов выполняется автоматически в зависимости от того, в каком контексте они используются. Например, в выражениях, включающих числовые и строковые значения с оператором + , JavaScript преобразует числовые значения в строковые:

Var message = 10 + " дней до отпуска"; // вернет "10 дней до отпуска"

Получить тип данных, который имеет переменная, можно с помощью оператора typeof . Этот оператор возвращает строку, которая идентифицирует соответствующий тип.

Typeof 35; // вернет "number" typeof "text"; // вернет "string" typeof true; // вернет "boolean" typeof ; // вернет "object" typeof undefined; // вернет "undefined" typeof null; // вернет "object"

Все типы данных в JavaScript делятся на две группы — простые типы данных (primitive data types) и составные типы данных (composite data types) .

К простым типам данных относят строковый, числовой, логический, null и underfined .

2.2.1. Строковый тип (string)

Используется для хранения строки символов, заключенных в двойные или одинарные кавычки. Пустой набор символов, заключенный в одинарные или двойные кавычки, является пустой строкой. Число, заключенное в кавычки, также является строкой.

Var money = ""; // пустая строка, ноль символов var work = "test"; var day = "Sunday"; var x = "150";

В строку в двойных кавычках можно включить одиночную кавычку и наоборот. Кавычка того же типа отключается с помощью символа обратного слэша \ (так называемая escape-последовательность ):

Document.writeln("\"Доброе утро, Иван Иваныч!\"\n"); // выведет на экран "Доброе утро, Иван Иваныч!"

Строки можно сравнивать, а также объединять с помощью операции конкатенации + . Благодаря автоматическому приведению типов можно объединять числа и строки. Строки являются постоянными, после того, как строка создана, она не может быть изменена, но может быть создана новая строка путем объединения других строк.

2.2.2. Числовой тип (number)

Используется для числовых значений. Числа в языке JavaScript бывают двух типов: целые числа (integer) и числа с плавающей точкой (floating-point number) . Целочисленные величины могут быть положительными, например 1 , 2 , и отрицательными, например –1 , –2 , или равными нулю. 1 и 1.0 — одно и то же значение. Большинство чисел в JavaScript записываются в десятичной системе счисления, также может использоваться восьмеричная и шестнадцатеричная системы.

В десятичной системе значения числовых переменных задаются с использованием арабских цифр 1, 2, 3, 4, 5, 6, 7, 8, 9, 0 .

В восьмеричном формате числа представляет собой последовательность, содержащая цифры от 0 до 7 и начинающаяся с префикса 0 .

Для шестнадцатеричного формата добавляется префикс 0x (0X), за которым следует последовательность из цифр от 0 до 9 или букв от a (A) до f (F), соответствующие значениям от 10 до 15 .

Var a = 120; // целое десятичное числовое значение var b = 012; // восьмеричный формат var c = 0xfff; // шестнадцатеричный формат var d = 0xACFE12; // шестнадцатеричный формат

Числа с плавающей точкой представляют собой числа с дробной десятичной частью, либо это числа, выраженные в экспоненциальном виде. Экспоненциальная запись чисел предполагает следующий вид: число с дробной десятичной частью, за ним следует буква e , которая может быть указана как в верхнем, так и в нижнем регистре, далее — необязательный знак + или - и целая экспонента.

Var a = 6.24; // вещественное число var b = 1.234E+2; // вещественное число, эквивалентно 1.234 Х 10² var c = 6.1e-2; // вещественное число, эквивалентно 6.1 Х 10‾²

2.2.3. Логический тип (boolean)

Данный тип имеет два значения, true (истина), false (ложь). Используется для сравнения и проверки условий.

Var answer = confirm("Вам понравилась эта статья?\n Нажмите ОК. Если нет, то нажмите Cancel."); if (answer == true) { alert("Спасибо!"); }

Также существуют специальные типы простых значений:
нулевой тип — данный тип имеет одно значение null , которое используется для представления несуществующих объектов.

неопределенный тип — тип переменной underfined означает отсутствие первоначального значения переменной, а также несуществующее свойство объекта.

Составные типы данных состоят из более чем одного значения. К ним относятся объекты и особые типы объектов — массивы и функции. Объекты содержат свойства и методы, массивы представляют собой индексированный набор элементов, а функции состоят из коллекции инструкций.

2.3. Глобальные и локальные переменные

Переменные по области видимости делятся на глобальные и локальные . Область видимости представляет собой часть сценария, в пределах которой имя переменной связано с этой переменной и возвращает ее значение. Переменные, объявленные внутри тела функции, называются локальными , их можно использовать только в этой функции. Локальные переменные создаются и уничтожаются вместе с соответствующей функцией.

Переменные, объявленные внутри элемента , или внутри функции, но без использования ключевого слова var , называются глобальными . Доступ к ним может осуществляться на протяжении всего времени, пока страница загружена в браузере. Такие переменные могут использоваться всеми функциями, позволяя им обмениваться данными.

Глобальные переменные попадают в глобальное пространство имен , которое является местом взаимодействия отдельных компонентов программы. Не рекомендуется объявлять переменные таким способом, так как аналогичные имена переменных уже могут использоваться любым другим кодом, вызывая сбой в работе скрипта.

Глобальное пространство в JavaScript представляется глобальным объектом window . Добавление или изменение глобальных переменных автоматически обновляет глобальный объект. В свою очередь, обновление глобального объекта автоматически приводит к обновлению глобального пространства имен.

Если глобальная и локальная переменная имеют одинаковые имена, то локальная переменная будет иметь преимущество перед глобальной.

Локальные переменные, объявленные внутри функции в разных блоках кода, имеют одинаковые области видимости. Тем не менее, рекомендуется помещать объявления всех переменных в начале функции.

В процессе работы компьютерные программы манипулируют значениями, такими как число 7 или текст "HelloWorld!". Каждое значение, которое может быть представлено и обработано в языке программирования относится к определённому типу данных . Тип данных определяет типы значений, которые используются в языке программирования.

В JavaScript типы данных можно разделить на две категории: простые (их также называют примитивными ) типы и составные (их также называют ссылочными или объекты ).

  • string - текстовые строки (обычно их называют просто - строки)
  • number - числа
  • boolean - логические (булевы) значения

Так же к простым типам относятся два специальных значения:

  • null
  • undefined

К составным типам данных относятся:

  • function - функции
  • array - массивы
  • object - объекты
Разница между простыми и составными типами

Разница между простыми и составными типами проявляется при копировании значений.

Когда переменной (параметру функции, свойству или элементу массива) присваивается значение простого типа, например число, то в переменную записывается само значение (в данном случае - число). При выполнении присваивания одной переменной (со значением простого типа) другой переменной происходит копирование значения. В результате каждая переменная имеет свою копию значения и изменения в одной из переменных никак не сказывается на значении другой:

Var num1 = 10; var num2 = num1; // Копируем значение alert("num1: " + num1 + // 10 "\nnum2: " + num2); // 10 num1 = 15; // Изменяем значение alert("num1: " + num1 + // 15 "\nnum2: " + num2); // 10

Когда переменной (параметру функции, свойству или элементу массива) присваивается значение составного типа, например объект, то в переменную записывается ссылка на значение (в данном случае - ссылка на объект). При выполнении присваивания одной переменной (в значении которой ссылка на составное значение) другой переменной происходит копирование ссылки на составное значение. В результате обе переменные ссылаются на одно и то же составное значение и любые внесённые изменения в значении одной из переменных будут сказываться на другой переменной:

Var o1 = {x:10}; var o2 = o1; // Копируем ссылку на объект alert("o1.x: " + o1.x + // 10 "\no2.x: " + o2.x); // 10 o2.x = 15; // Изменяем значение alert("o1.x: " + o1.x + // 15 "\no2.x: " + o2.x); // 15

null и undefined

Тип null имеет всего одно значение - null . Значение null является ссылкой на пустой объект и имеет специальное назначение - обычно оно используется для инициализации переменной, которой впоследствии будет присвоен объект.

Тип undefined имеет всего одно значение - undefined . Значение undefined указывает на изначальное отсутствие какого-либо значения. Получить значение undefined можно следующим образом:

  • При обращении к переменной, которая была объявлена, но не была инициализирована.
  • При обращении к несуществующему свойству объекта.
  • При обращении к несуществующему элементу массива.
  • При обращении к параметрам функции, которые не были инициализированы аргументами при вызове функции.
  • Возвращается функциями, которые не имеют возвращаемого значения.
  • Возвращается оператором typeof, если операндом является несуществующая переменная.
var bar; document.write(bar); Попробовать »

Идентификатор undefined является именем предопределённой глобальной переменной, которая инициализирована значением undefined . Переменная undefined доступна только для чтения.

Объекты обёртки

Каждый раз, когда в программе предпринимается попытка обратиться к свойству или методу значения примитивного типа, интерпретатор временно преобразует примитивное значение в объект соответствующего типа. Временные объекты, в которые преобразуются значения примитивного типа, называют объектами обёртками . Эти объекты используются интерпретатором для доступа к нужному свойству или методу. Сразу после обращения к свойству или методу объект обёртка уничтожается. Объекты обёртки создаются только для значений типа number , string и boolean . Значения null и undefined не имеют объектов оберток: любые попытки обратиться к свойствам этих значений будут вызывать ошибку.

Если для объекта обёртки попытаться установить новое свойство то, новое свойство не будет сохранено, так как объект обёртка уничтожается сразу после того, как выполнит свою работу:

Var str = "текст"; str.len = 5; // Установить свойство со значением. Сразу после этого объект уничтожается alert(str.len); // undefined, так как предыдущий объект обёртка уже уничтожен

Объекты обёртки можно рассматривать просто как реализацию удобства для работы со значениями примитивного типа и вообще не думать о них.

Они делятся на встроенные и пользовательские (определяемые программистом).

Литералы - данные, непосредственно используемые в программе. Литералы могут быть разных типов.

  • Числовые литералы: 10 2.310 2.3е+2
  • Строковый литерал: "Строковый" "Строковый"

Литералы используются в операциях присваивания:

Присваивание выполняется справа налево:

Экранирование кавычек в тексте знаком "/"".

Переменные

Объявление переменных происходит через var, можно определять через запятую, присваивая ей значение или нет.

Тип переменной определяется по её значению. JavaScript является гибко типизированным языком в разных частях программы одна и та же переменная может иметь значения разных типов.

Для определения типа переменой существует оператор typeof() ;

Области видимости

Объявление с var вне функции делает переменную глобальной.

Объявление var внутри функции делает переменную локальной.

Конфликт локальных и глобальных переменных

Будет выдано 7, так как в блоке вывода фигурирует глобальная переменная.

Примечание, при объявлении можно var не писать.

Отсутвие var в функции, делает переменную конструктора.

Нестандартный пример с неожиданным выводом

Будет выведено 5, так как вызов f(3) изменил значение переменной k.

Массивы

Массивы делятся на встроенные, называемые коллекциями, и пользовательские.

Для определения пользовательского используется конструктор Array.

Элементы нумеруются с 0. Не могут быть многомерными. Но может быть массив массивов.

Методы по работе с массивами

Метод join() объединяет элементы массива в строку.

Обратный метод split() рабивает сроку на элементы массива по разделителю.

Полученный массив

Меняем значения у 0 и 1 элементов массива:

Склеим получившиеся значения:

Метод reverse() Метод reverse() применяется для изменения порядка элементов массива на противоположный. Инициализируем массив: Упорядочим его в обратном порядке, вызвав метод reverse(), тогда новый массив будет содержать: Метод sort() Метод sort() интерпретирует элементы массива как строковые литералы и сортируем массив в алфавитном (лексикографическом) порядке. Метод sort() меняет массив. В предыдущем примере, применив a.sort, получим: Если необходимо отсортировать числа, в функцию sort() добавляется необязательный аргумент, являющийся именем функции, удовлетворяющей следующим требованиям:
  • у нее должно быть два аргумента
  • она должна возвращать число
  • если первый аргумент функции должен считаться меньшим (большим, равным), чем второй аргумент, то функция должна возвратить отрицательное (положительное, ноль) значение

Функция имеет вид:

Если нам необходимо сортировать числа, то мы можем использовать следующую функцию:

Для примера создадим массив \(b = new Array(10,6,300,25,18)\) и сравним результаты сортировки без аргумента и с функцией compar в качестве аргумента: \(Алфавитный порядок:)\) \(10, 18, 25, 300, 6)\) \(Числовой порядок:)\) \(6, 10, 18, 25, 300)\) Метод sort() понимает элементы массива как строки, но не преобразует их в строки.

Операторы
  • {...}
  • if ... else ...
  • while
  • break
  • continue
  • return
{...}

Фигурные скобки определяют составной оператор - блок.

Назначение - определение тела цикла, тело условного оператора или функции.

if ... else ...

Условный оператор применяется для ветвления программы по логическому условию. Есть два варианта синтаксиса:

Пример использования:

()? Этот оператор называется условным выражением, выдает одно из двух значений в зависимости от выполнения некоторого условия. Синтаксис: Является альтернативой if...else... . Следующие примеры равносильны: while Оператор while задает цикл. Определяется следующим образом: Формально, цикл while работает следующим образом:
  • выполняем тело_цикла;
  • переходим к п.1.
  • Такой цикл используется, когда заранее неизвестно количество итераций, например, в ожидании некоторого события. Пример: for Оператор for - оператор цикла. Он имеет вид: Цикл работает следующим образом:
  • выполняется инициализация_переменных_цикла;
  • проверяется условие_продолжения цикла:
    • если оно ложно (false), цикл закончен,
    • если же оно истинно (true), продолжаем далее
  • выполняем тело_цикла;
  • выполняется модификация_переменных_цикла
  • переходим к п.1.
  • Пример использования: Math - втроенный объект, предоставляющий многочисленные математические константы и функции, а Math.pow(n,m) вычисляет степенную функцию \(n^{m}\). break Оператор break позволяет дострочно покинуть тело цикла. Изменим пример с кубами чисел, распечатаем только кубы, не превышающие 5000. Несмотря на то,что переменную n мы заставили пробегать от 1 до 100, т.е. заведомо с запасом, реально же цикл выполнится для значений от 1 до k, где k - номер последней итерации в данном случае. continiue Оператор continue позволяет перейти к следующей итерации цикла, пропустив выполнение всех нижестоящих операторов в теле цикла.Если нам нужно вывести кубы чисел от 1 до 100, превышающие 10 000, то мы можем составить такой цикл: return Оператор return используют для возврата значения из функции или обработчика события. Оператор return не только указывает, какое значение должна вернуть функция, но и прекращает выполнение дальнейших операторов в теле функции. При использовании в обработчиках событий оператор return позволяет отменить или не отменять действие по умолчанию, которое совершает браузер при возникновении данного события. Отменить его, однако, можно не для всех событий. В этом примере без оператора return false пользователь увидел бы окно предупреждения "Не отправим!" и далее был бы перенаправлен на страницу newpage.html. Оператор же return false позволяет отменить отправку формы, и пользователь лишь увидит окно предупреждения. Аналогично, чтобы отменить действие по умолчанию для параметров событий onClick, onKeyDown, onKeyPress, onMouseDown, onMouseUp, onSubmit, onReset, нужно использовать return false. Для события onMouseOver с этой же целью нужно использовать оператор return true. Для некоторых же событий, например onMouseOut, onLoad, onUnload, отменить действие по умолчанию невозможно.

    Как и в любом другом языке программирования типы данный в JS делятся на:

    –литералы и переменные

    –массивы, функции и объекты

    Литералы:

    Литералами называются самые примитивные единицы в любом языке программирования, такие как числа и символы. В JavaScript литералы делятся на числовые и строковые:

    Числовые литералы Строковые литералы

    4.5e+2 "Типы данных в JavaScript"

    Использовать литералы в коде JS можно для операций присваивания и сравнения:

    var pi = "число ПИ";

    if(q == "b") q = b + 1;

    Переменные:

    Ну и какой же язык программирования без переменных. Вообще переменные смело можно назвать основой любого языка программирования. Практически ни одна функция, ни один цикл или оператор не может быть выполнен без использования переменных.

    JavaScript позволяет присвоить этому типу данных не только значения литералов, но также присвоить весь массив целиком, всю функцию или название объекта. Задавать переменные можно как просто так в любом месте программы, так и при помощи оператора var:

    id = window.close();

    var arr = new Array();

    ob = document.forms;

    В языке JavaScript существуют два основных вида массивов:

    встроенные в интерпритатор (document.forms, document.images,...)

    определяемые пользователем

    Создается массив при помощи конструкции new Array();

    a = new Array(); b = new Array(15); c = new Array(15,33,"значение 3");

    В первом случае переменной a присваивается пустой массив, во втором переменной b присваивается массив, первым значением которого является число 15 и наконец, в третьем случае переменной c присваивается массив из 3х значений, третье из которых является строковым литералом.

    Для обработки массивов в JS существует несколько основных методоов:

    join(); reverse();sort();

    Ниже представлен список основных операторов, которые мы с вами рассмотрим:

    var; {...}; if; while; for; for ... in; break; continue; return.

    3. Переменные и оператор присваивания в JavaScript.

    Базовый оператор присваивание - это обычное приравнивание =, которое дает левому операнду значение правого операнда.

    Остальные операторы являются сокращениями следующих форм.Сокращенный оператор Значение

    x += y x = x + y

    x -= y x = x - y

    x *= y x = x * y

    x /= y x = x / y

    x %= y x = x % y

    x > y

    x >>>= y x = x >>> y

    x &= y x = x & y

    x ^= y x = x ^ y

    x |= y x = x | y

    4. Операторы в JavaScript.

    Операторы служат для управления потоком команд в JavaScript. Один объект может быть разбит на несколько строк,или, наоборот в одной строке может бытьнесколько операторов.

    Необходимо знать следующее, во-первых,блоки операторов, такие как определения функций, должны быть заключены в фигурные скобки. Во-вторых, точка с запятой служит разделителем отдельных операторов. Если пропустить точку с запятой, поведение программы станет непредсказуемым.

    Так как JavaScript не имеет жестких требований к форматированию текста программы, можно вставлять символы перевода строки и отступа для лутшей читабельности текста.

    Ниже описаны операторы, которые используются в JavaScript:

    break, comment, continue , for , for...in , function , if...else

    Для создания имён переменных в JavaScript установлены правила синтаксиса:

    • Для имён переменных используются символы: a-z, A-Z, цифры, символ $, символ знак подчёркивания (_).
    • Имя переменной не может начинаться с цифры.
    • JavaScript чувствителен к регистру, об этом нужно помнить при программировании. itcounter и itC ounter - это разные переменные.
    • В JavaScript нет ограничений на длину имени переменной.

    Примеры правильных имён переменных:

    • itcounter
    • $_itcounter
    • it_counter

    Ошибочные имена переменных:

    • 9room
    • it-counter
    • #itcounter
    • &itcounter

    Переменные объявляются командой var .

    В переменных можно хранить строки и числа. На самом деле можно хранить и другие типы данных, но о них поговорим позже.

    Строковые переменные

    Чтобы записать в переменную строку нужно её значение заключить в кавычки, двойные или одинарные.

    Var $stroka_1 = "Привет!"; var $stroka_2 = "Осторожно!";

    В строку, созданную одинарной кавычкой, можно включить двойную кавычку и наоборот.

    Var $stroka_1 = ""Привет!" - это приветствие."; var $stroka_2 = ""Осторожно!" - это предупреждение."; document.write($stroka_1); document.write("

    Чтобы вывести кавычку того же типа, её нужно экранировать символом обратного слэша. Всё просто:


    "); document.write($stroka_2);

    Значения переменных можно присваивать другим переменным:

    Var $stroka_1 = "\"Привет!\" - это приветствие."; var $stroka_2 = "\"Осторожно!\" - это предупреждение."; document.write($stroka_1); document.write("
    "); document.write($stroka_2); $stroka_2 = $stroka_1; document.write("
    "); document.write($stroka_2);

    В этом примере мы сначала в переменную $stroka_2 присвоили одно строковое значение, но потом присвоили ей значение переменной $stroka_1.

    Объединение строк

    Очень часто нужно объединить несколько строк в одну. Например, наш последний пример слишком громоздкий.

    Объединение (конкатенация) строк в JavaScript осуществляется с помощью знака + .

    Для вывода на экран 2 строковых переменных разделённых тегом
    переменных можно использовать одну команду document.write() .

    Var $stroka_1 = ""Привет!" - это приветствие."; var $stroka_2 = ""Осторожно!" - это предупреждение."; document.write($stroka_1 + "
    " + $stroka_2);

    Оператор конкатенации + также можно использовать в переменных:

    Var $stroka_1 = ""Привет!" - это приветствие."; var $stroka_2 = ""Осторожно!" - это предупреждение."; var $stroka_3 = $stroka_1 + "
    " + $stroka_2; document.write($stroka_3);

    Числовые переменные

    Чтобы создать числовую переменную нужно просто присвоить ей числовое значение.

    Var $count_1 = 23; var $count_2 = 10.34; document.write($count_1 - $count_2);

    Теперь другой пример:

    Var $count_1 = 23; // Числовая переменная. var $stroka_1 = "57"; // Строковая переменная. document.write($stroka_1 + $count_1);

    Видите, значение переменной $stroka_1 взято в кавычки, значит это текстовая переменная. Потом мы складываем текстовую и числовую переменную и получаем строку "5723", так работает JavaScript в таких случаях - превращает число в строку и добавляет к суммируемой строке.

    Булевы переменные

    Есть такой тип переменных - булевы. Всё просто, тут только два значения: истина и ложь, то есть true (истина) и false (ложь).

    Этот тип данных используется в операциях сравнения. Вот простые примеры:

    • 9 > 1 - это истина.
    • 2 > 5 - это ложь.
    var $count = 2

    Теперь попробуем подставить булевы значения в арифметические действия. Суммируем две операции сравнения:

    Var $count = (3 > 2) + (4 > 2); document.write($count);

    Эта странная запись, я знаю. Но переменная $count будет равна 2. В математическом контексе значение true = 1, а значение false = 0.

    Операции сравнения используются в часто применяемой инструкции if в JavaScript. Слово if по английски значит - если.

    Var $count = 100; if ($count == 100) document.write("Переменная $count равна 100.");

    В данном примере сообщение будет выведено на экран, так как условие инструкции if ($count == 100) равно истине (true). Если изменить значение переменной $count на 99, то условие ($count == 100) станет равно false (ложь) и на экран ничего не выведется.

    Простые типы переменных

    В JavaScript переменные классифицируются на несколько типов. Строковой, числовой и булевый (логический) типы мы уже рассмотрели. Вот более широкий список простых типов:

    • string - строковая переменная.
    • number - числовая переменная.
    • boolean - булева переменная.
    • null - специальное значение «ничто».
    • undefined - тип «значение не присвоено».

    Значение переменной null образует свой отдельный тип null, состоящий из единствено возможного значения null. null - это специальное значение, которое имеет смысл «ничего» или «значение неизвестно».

    Var $price = null; // это значит что цена не известна.

    В JavaScript можно узнать тип переменных при помощи инструкции typeof .

    Var $count; document.write(typeof $count + "
    "); var $count = true; document.write(typeof $count + "
    "); var $count = "true"; document.write(typeof $count + "
    "); var $count = 100; document.write(typeof $count + "
    "); var $count = null; document.write(typeof $count + "
    ");

    Синтаксис инструкции typeof может быть таким:

    • typeof $count
    • typeof($count)

    Итак, запустите код из последнего примера и посмотрите на результат. Тип переменной null будет object. Этот ошибка в языке, и она, вероятно, никогда не будет исправлена из-за необходимости сохранения совместимости уже написаных JavaScript сценариев с новыми версиями языка.

    Тип object - это уже не примитивный тип, о нём мы будем говорить в других уроках.