создание и продвижение сайта (вбиваю в ТОП-10, как гвозди)Настройка и сопровождение платной рекламы яндекс.директ

Урок 2. Данные и функции в JavaScript

Содержание

Теория

Данные - это объекты, которыми может оперировать JavaScript, к примеру, имя пользователя - это строка, а его возраст - это число. Данные могут быть разных типов.

Строки и числа

Самыми простыми типами данных в JavaScript являются строки и числа.

Числа обозначают сами себя: 1, 8, 88, а вот строки требуется брать в кавычки (одинарные или двойные): 'строка', "строка".

Переменные

1 из самых главных и распространенных объектов в программировании - переменная.

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

Имя переменной должно состоять из английских букв: больших или маленьких, а также цифр и знака_подчеркивания.

В JavaScript при объявлении переменной должно быть написано ключевое слово var (не всегда!):

var a//Объявлена переменная.

var a,a1,isVar,is_var//Объявлена группа переменных.

Операция присваивания

Очень важным элементом программирования - операция присваивания:

a=4//Переменной a присвоено значение 4.

Комментарии

В коде JavaScript можно оставлять комментарии. Они могут быть многострочными и 1-строчными:

a=4//Пример 1-строчного комментария.

/*Пример

многострочного комментария.*/

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

Функция alert

В JavaScript существует специальная функция alert, которая позволяет вывести какой-либо текст в окно браузера в виде диалогового окна.

Следующий код выводит на экран заданный текст:

alert('Привет, мир')//Выведет на экран фразу 'Привет, мир'.

В следующим коде переменной t присваивается фраза, а затем содержимое этой переменной выводится на экран:

t='Привет, мир';alert(t)//Выведет на экран фразу 'Привет, мир'.

Математические операции

В JavaScript между числами можно совершать различные математические операции:

alert(2+3);//Выведет 5.

alert(5-1);//Выведет 4.

alert(2*3);//Выведет 6.

alert(6/2)//Выведет 3.

Получение определенного символа строки

В JavaScript можно получить доступ к определенному символу строки по его номеру таким образом: a[n] - n-ный символ строки (нумерация начинается с 0):

var a,b;//Объявим наши переменные.

a='abcde';//В переменной а будет хранится значение 'abcde'.

b=a[0];//В переменной b будет 'a'.

b=a[1];//В переменной b будет 'b'.

b=a[4]//В переменной b будет 'e'.

Сложности с операцией присваивания

Присваивание отличается от обычного равенства:

a=1;a=a+2

С точки зрения математики запись a=a+2 абсурдна, но не с точки зрения программирования.

В данном случае переменная a имела значение 1, а затем переменной a присвоили новое значение (старое значение переменной a+2).

Операции инкремента и декремента

Операция a++ или ++a увеличивает переменную a на 1 (инкремент).

Операция a-- или --a уменьшает переменную a на 1 (декремент).

Примеры:

a=1;a++;//Увеличит a на 1 (равнозначно a=a+1).

alert(a);//Выведет 2.

a=1;a--;//Уменьшит a на 1 (равнозначно a=a-1).

alert(a)//Выведет 0.

Рассмотрим разницу между ++a и a++.

Есть код alert(++a) и код alert(a++).

В 1-м случае переменная сначала увеличится на 1, а потом выведется, во 2-м случае - сначала выведется, а потом увеличится на 1.

Операции +=, -=, *=, /=

Мы уже рассматривали код, который демонстрирует сложности с операцией присваивания: var a=2;a=a+3.

В данном случае мы присваиваем переменной a ее текущее значение, увеличенное на 3. Однако JavaScript позволяет записать этот код еще короче с помощью оператора +=:

a=2;a+=3//Этот код полностью эквивалентен коду a=a+3.

Кроме того, существуют операторы -=, *=, /=, которые эквивалентны следующему коду:

a=2;a-=3;//Этот код полностью эквивалентен коду a=a-3.

a=2;a*=3;//Этот код полностью эквивалентен коду a=a*3.

a=2;a/=3//Этот код полностью эквивалентен коду a=a/3.

Специальные значения

В JavaScript существуют ключевые слова для некоторых специальных значений: undefined, null, true, false, NaN, Infinity, -Infinity.

Значения undefined и null

Значение undefined обозначает неопределенность. К примеру, если обратиться к переменной, которой еще не задали значение, то ее значение и будет undefined.

var a;alert(a)//Выведет undefined.

Значение null обозначает 'ничего'. Например, можно присвоить переменной значение null в знак того, что там ничего не лежит.

Это значение очень похоже на undefined, но отличие в том, что undefined - это не определенное значение, а null - определенное - ничего.

Значения true и false

Значения true и false обозначают истину и ложь соответственно. Они используются тогда, когда предполагается 2 варианта ответа: да-нет.

Например, на вопрос 'ты ел?' можно ответить да (true) или нет (false).

Значение NaN

Значение NaN (Not-A-Number) обозначает не число. Оно может получится в таком случае, когда умножается строка с буквами на число:

alert('abc'*3)//Выведет NaN.

Значения Infinity и -Infinity

Значения Infinity и -Infinity обозначают соответственно бесконечность и минус бесконечность. Они получаются, если какое-то число делить на 0. В этом случает JavaScript не выдает ошибку, а возвращает эти значения.

Если делить на 0 положительное число, получается Infinity, а если отрицательное, - то -Infinity.

Функция prompt

Функция prompt не только выдает окошко с текстом, но и позволяет получить от пользователя какой-либо текст.

Этот текст можно записать в переменную и затем выполнить над ним какие-либо операции.

В следующем примере спросим имя пользователя, запишем его в переменную n и с помощью функции document.write напишем на странице:

n=prompt('Ваше имя');document.write('Ваше имя: '+n)

Функция confirm

Если нужно просто спросить у пользователя 'Да' или 'Нет', не давая ему возможность ввести иной текст, используется функция confirm.

Эта функция вызывает окошко с вопросом, на который нужно ответить пользователю, и 2 кнопками для ответа: с кнопкой 'ОК' и с кнопкой 'Отмена'.

Если пользователь нажмет 'ОК', то функция вернет true, а если 'Отмена', то вернет false.

В следующем примере функция confirm выведет диалоговое окно с вопросом 'ты ел?'.

Если вы нажмете 'Ок', то в переменную a запишется true и с помощью функции document.write напишется на странице, а если нажмете 'Отмена', то false:

a=confirm('ты ел?');document.write(a)

Типизация переменных

Что будет, если попробовать перемножить число и строку, вот так: 3*'3'? В результате получится число 9. Это значит, что JavaScript автоматически осуществляет преобразование типов при необходимости.

Но есть нюанс: если попытаться сложить строку и число, то JavaScript сложит их как строки, а не как числа, вот так: '3'+3 получится строка '33', а не число 6.

В случае с умножением JavaScript понимал, что нельзя перемножить строки, поэтому строки переводил в числа и перемножал их. А случай со сложением можно трактовать двояко: складывать как строки или как числа (+ используется как для сложения строк, так и чисел).

Бороться с этим можно следующем способом: нужно сделать недопустимую для строк операцию, например, так: +'3'+3 (поставить+перед строкой и она преобразуется к числу).

2-й вариант такой: можно сказать JavaScript, что мы хотим явно преобразовать строку к числу. Это делается с помощью функции Number, вот так: Number('3')+3. В результате получится 6, а не '33'.

К числам могут преобразовываться не только строки, но и любые другие типы данных, например true тоже можно преобразовать к числу таким образом: Number(true).

Можно преобразовывать и к другим типам с помощью функций Boolean, String и других подобных.

Практика

Примеры решения задач

Задача

Создать переменную str и присвоить ей значение 'abcde'. Обращаясь к отдельным символам этой строки выведите на экран символ 'a', символ 'b', символ 'e'.

Решение: будем обращаться к отдельным символам этой строки, к примеру, буква 'a' имеет номер 0 и ее можно вывести так: str[0], буква 'b' имеет номер 1 и так далее:

var str='abcde';document.write(str[0]);//Выводится буква 'a'.

document.write(str[1]);//Выводится буква 'b'.

document.write(str[4]);//Выводится буква 'e'.

Задача

Написать скрипт, который считает количество секунд в часе.

Решение: так как в минуте 60 секунд, а в часе 60 минут, то умножив 60 на 60 получится количество секунд в часе:

document.write(60*60)

Если нужно получить количество секунд в сутках, то умножим еще и на 24 часа:

document.write(60*60*24)

Задача

Переделать приведенный код так, чтобы в нем использовались операции +=, -=, *=, /=, ++, --. Количество строк кода при этом не должно измениться. Код для переделки:

n=1;

n=n+8;

n=n-7;

n=n*5;

n=n/7;

n=n+1;

n=n-1;

alert(n);

Решение: заменим все подходящие места на сокращенную форму записи. К примеру, вместо n=n+8 можно написать n+=8, а вместо n=n+1 будет n++. Результат переделки будет выглядеть так:

n=1;

n+=8;

n-=7;

n*=5;

n/=7;

n++;

n--;

alert(n);

Задачи для решения

Работа с переменными

Создать переменную n и присвоить ей значение 3. Вывести значение этой переменной на экран с помощью метода alert.

Создать переменные a=8, b=2. Вывести на экран их сумму, разность, произведение и частное (результат деления).

Создать переменные c=8, d=2. Просуммировать их, а результат присвоить переменной r. Вывести на экран значение переменной r.

Создать переменные a=8, b=2, c=5. Вывести на экран их сумму.

Создать переменные a=9, b=8. Отнять от a переменную b и результат присвоить переменной c. Затем создать переменную d, присвоить ей значение 7. Сложить переменные c и d, а результат записать в переменную r. Выведите на экран значение переменной r.

a=9,b=8;c=a-b;d=7;r=c+d;document.write(r)

Работа со строками

Создать переменную s и присвоить ей значение 'Привет'. Вывести значение этой переменной на экран.

Создать переменные s1='Привет, ' и s2='Мир'. С помощью этих переменных и операции сложения строк вывести на экран фразу 'Привет, Мир'.

Создать переменную n и присвоить ей имя Иван. Вывести на экран фразу 'Привет, %Имя%!'.

Создать переменную a и присвоить ей возраст (8). Выведите на экран 'Мне %Возраст% лет'.

Функция prompt

Спросить имя пользователя с помощью метода prompt. Вывести с помощью alert сообщение 'Ваше имя %имя%'.

Спросить у пользователя число. Вывести с помощью alert квадрат этого числа.

Обращение к символам строки

Создать переменную s и присвоить ей значение 'abcde'. Обращаясь к отдельным символам этой строки вывести на экран символ 'a', символ 'c', символ 'e'.

s='abcde';a=s[0];b=s[2];c=s[4];document.write(a,b,c)

Создать переменную s и присвоить ей значение '12345'. Найти произведение цифр этого числа.

s='12345';a=s[0];b=s[1];c=s[2];d=s[3];e=s[4];r=Number(a)+Number(b)+Number(c)+Number(d)+Number(e);document.write(r)

Практика

Написать скрипт, который считает количество секунд в часе, в сутках, в месяце.

Создать 3 переменные: час, минута, секунда. С их помощью вывести текущее время в формате 'час:минута:секунда'.

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

Работа с присваиванием, инкрементами и декрементами

Переделать этот код так, чтобы в нем использовались операции +=, -=, *=, /=. Количество строк кода при этом не должно измениться.

n=6;

n=n+7;

n=n-8;

n=n*9;

n=n/2;

alert(n)

Переделать этот код так, чтобы в нем использовались операции ++ и --. Количество строк кода при этом не должно измениться.

n=8;

n=n+1;

n=n+1;

n=n-1;

alert(n)

Содержание

Отвечу на любые вопросы. С уважением, Дмитрий Владимирович.

Ваше письмо×
Free Web Hosting