Hello again!

Переменные

Переменная – это «именованное хранилище» для данных. Мы можем использовать переменные для хранения товаров, посетителей и других данных.

let message;
message = "привет";

Для создания переменной в JavaScript, используйте ключевое слово let.

=        это знак присваивания!

==      а вот это знак равно!

Строка сохраняется в области памяти, связанной с переменной. Мы можем получить к ней доступ, используя имя переменной:

let message;
message = 'Hello!';

alert(message); // показывает содержимое переменной

Можно объявить переменную и присвоить ей значение в одной строке:

let message = 'Hello!';

Можно объявлять несколько переменных в одной строке:

let user = 'John', age = 25, message = 'Hello';
let user = 'John';
let age = 25;
let message = 'Hello';

Многострочный вариант немного длиннее, но легче для чтения:

let user = 'John',
  age = 25,
  message = 'Hello';

let вместо var

Ключевое слово var – почти то же самое, что и let. Оно объявляет переменную, но немного по-другому, «устаревшим» способом.

var message = 'Hello';

Аналогия

Переменную message можно представить, как коробку с названием "message" и значением "Hello!"внутри:

Мы также можем изменить его столько раз, сколько захотим:

message = 'World!';

При изменении значения старые данные удаляются из переменной

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

let hello = 'Hello world!';

let message;

// копируем 'Hello world' из переменной hello в переменную message
message = hello;

// теперь две переменные содержат одинаковые данные
alert(hello); // Hello world!
alert(message); // Hello world!

Имена переменных

let userName;
let test123;
let $ = 1; // объявили переменную с именем "$"
let _ = 2; // а теперь переменную с именем "_"

alert($ + _); // 3

Допустимые имена:

Недопустимые имена:

let 1a; // не может начинаться с цифры

let my-name; // дефис '-' не разрешён в имени

Регистр имеет значение

let apple;

let Apple;

// Это две разные переменные!

Не-латинские буквы разрешены, но не рекомендуются

let имя = '...';
let 我 = '...';

Зарезервированные имена

Например: let, class, return и function зарезервированы.

let let = 5; // нельзя назвать переменную "let", ошибка!
let return = 5; // нельзя назвать переменную "return", ошибка

Константы

Чтобы объявить константную, то есть, неизменяемую переменную, используйте const вместо let:

const myBirthday = '18.04.1982';

Переменные объявленные с помощью const, называются «константами». Их нельзя изменить. Попытка сделать это приведёт к ошибке:

const myBirthday = '18.04.1982';

myBirthday = '01.01.2001'; // Err, константу нельзя перезаписать!

Константы в верхнем регистре

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

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

const COLOR_RED = "#F00";
const COLOR_GREEN = "#0F0";
const COLOR_BLUE = "#00F";
const COLOR_ORANGE = "#FF7F00";

// ...когда нам нужно выбрать цвет
let color = COLOR_ORANGE;
alert(color); // #FF7F00
const pageLoadTime = /* время, потраченное на загрузку ... */;

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

Несколько хороших правил:

  • Используйте легко читаемые имена, такие как userName или shoppingCart.
  • Пишите имена переменных используя CamelCase
  • Избегайте использования аббревиатур или коротких имён, таких как a, b, c, за исключением тех случаев, когда вы точно знаете, что так нужно.
  • Делайте имена максимально описательными и лаконичными. Примеры плохих имён: data и value. Такие имена ничего не говорят. Их можно использовать только в том случае, если из контекста кода очевидно, какие данные хранит переменная.

Перерыв

Типы данных

Переменная в JavaScript может содержать любые данные. В один момент там может быть строка, а в другой – число:

// Не будет ошибкой
let message = "hello";
message = 123456;

Языки программирования, в которых такое возможно, называются «динамически типизированными». Это значит, что типы данных есть, но переменные не привязаны ни к одному из них.

int i = 10;        // задаем целочисленной переменной i значение 10
char symbol = 'Z';   // инициализируем переменную symbol буквой Z
float f = 15.7F;   // переменная f инициализируется числом 15.7

С#   Строго типизированный

Число

let num = 123;
let float = 12.345;

Числовой тип данных (number) представляет как целочисленные значения, так и числа с плавающей точкой.

Существует множество операций для чисел, например, умножение *, деление /, сложение +, вычитание - и так далее.

Кроме обычных чисел, существуют так называемые «специальные числовые значения», которые относятся к этому типу данных: Infinity, -Infinity и NaN.

alert( 1 / 0 ); // Infinity

Infinity представляет собой математическую бесконечность ∞. Это особое значение, которое больше любого числа.

NaN означает вычислительную ошибку. Это результат неправильной или неопределённой математической операции, например:

alert( "не число" / 2 ); // NaN, такое деление является ошибкой

Строка

Строка (string) в JavaScript должна быть заключена в кавычки.

let str = "Привет";
let str2 = 'Одинарные кавычки тоже подойдут';
let phrase = `Обратные кавычки позволяют встраивать переменные ${str}`;
alert(phrase);

Console

Обратные кавычки позволяют встраивать переменные привет

?

alert( `результат: ${1 + 2}` );

Console

результат: 3

Булевый (логический) тип

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

Такой тип, как правило, используется для хранения значений да/нет: true значит «да, правильно», а false значит «нет, не правильно».

let nameFieldChecked = true; // да, поле отмечено
let ageFieldChecked = false; // нет, поле не отмечено
let isGreater = 4 > 1;

alert( isGreater ); // true (результатом сравнения будет "да")

null

Это просто специальное значение, которое представляет собой «ничего», «пусто» или «значение неизвестно».

let age = null;  // age неизвестна или не имеет значения.

Undefined

Если переменная объявлена, но ей не присвоено никакого значения, то её значением будет undefined

let x;

alert(x); // выведет "undefined"

Object

Все остальные типы называются «примитивными», потому что их значениями могут быть только простые значения (будь то строка или число, или что-то ещё). Объекты же используются для хранения коллекций данных или более сложных объектов.

let user = {     // объект
  name: "John",  // под ключом "name" хранится значение "John"
  age: 30        // под ключом "age" хранится значение 30
};

Оператор typeof

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

typeof undefined // "undefined"

typeof 0 // "number"

typeof true // "boolean"

typeof "foo" // "string"

Еще чуть-чуть.

alert  prompt  confirm

alert

Этот код отобразит окно в браузере и приостановит дальнейшее выполнение скриптов до тех пор, пока пользователь не нажмёт кнопку «OK».

alert("Hello");

prompt

Функция prompt принимает два аргумента:

Этот код отобразит модальное окно с текстом, полем для ввода текста и кнопками OK/Отмена

let result = prompt(title, [default]);

title - Текст для отображения в окне.

default - Необязательный второй параметр, который устанавливает начальное значение в поле для текста в окне.

Confirm

Функция confirm отображает модальное окно с текстом вопроса question и двумя кнопками: OK и Отмена.

Результат true, если нажата кнопка OK. В других случаях false.

let result = confirm(question);
let isBoss = confirm("Ты здесь главный?");

alert( isBoss ); // true если нажата OK

Task

Hello again

By Techno School

Hello again

  • 36