Выражение - это кусочек кода, который вычисляется в какое-то значение. Их можно использовать везде, где ожидается какое-то значение. Примеры выражений:
- константы
console.log(50); // 50 -константа(не меняется)
- чтение значения переменной
const a = 6;
const b = a; // а - выражение
- математические и логические операции
console.log(5+6); // 5+6 - выражение
- вызов функции, которая возвращает значение
function add(x, y){
const p =x*y;
const s = x + y;
return s;
}
console.log(add(5, 6)); // add(5, 6) - выражение
Блок кода - это несколько инструкций, сгрупированных вместе. Если блок кода состоит из нескольких строк, то он должен заключаться в фигурные скобки.
Переменные - это способ дать имя значению. Из переменной можно прочитать значение, и в переменную можно записать значение.
В JS переменные задаются так:
var a; // объявление переменной а. Сейчас так не делают.
let b; // объявление переменной b, которой можно присваивать новое значение.
const c = 10; // объявление переменной с и присваивание ей значения. Больше этой переменной присваивать значений нельзя.
В переменную можно записать значение:
let a;
a = 10;
a = 20;
Из переменной можно прочитать значение:
let a = 10;
console.log(a); // выводим значение а на консоль( чтоб было видно в консоли).
let b = a; // переменной можно присвоить значение другой переменной.
С переменной можно обращаться так же, как и со значением:
let a = 10;
let b = a*5; // b == 50
- Имя переменной должно начинаться с буквы или знака подчеркивания
let _ao_ = 10;
let ero;
- Имя переменной может содержать буквы, цифры, знак подчеркивания
let _3f6_;
let a3456;
let __ee_5 = 34;
- Переменные обычно называют с маленькой буквы, если название переменной включает несколько слов,то каждение слово начинается с большой буквы(не включая заглавную)
let smoke;
let smokingIsBadForOurLife;
Функция - это кусочек кода, у которого есть имя и ноль или больше параметров. Функция объявляется один раз, и потом может быть вызвана несколько раз, возможно с разными аргументами.
Функция может возвращать значение(а может и нет).
function add(x, y){
return x + y;
}
Объявление функции начинается с ключевого слова function
, далее через пробел идет имя функции, круглые скобки, внутри скобок список параметров через запятую и тело функции, заключенное в фигурные скобки. Внутри тела функции может использоваться ключевое слово return
, при помощи которого из функции возвращается значение.
В теле функции можно писать практически любой код: объявлять переменные, вызывать другие функции, писать циклы, условия, даже объявлять другие функции.
Правила для имен функции и параметров функции такие же, как и для переменных.
Примеры:
function printSum(p, o){
console.log(p+o)
}
function add(u, i, y){
return (u+i)*y;
}
function add(u, i, y){
const s = u+i;
console.log(s)
return s*y;
}
Функция вызывается по имени. После имени обязательно указываются круглые скобки. Если у функции есть аргументы, они перечисляются внутри круглых скобок через запятую в том же порядке, как и параметры функции.
Параметры - в объявлении функции, аргументы - значения параметров при вызове функции.
Примеры:
function add(x, y){
return x + y;
}
const s = add(5, 7)
function print(x){
console.log(x);
}
function square(p){
return p*p;
}
Литерал - это значение определенного типа, записанное в коде.
Примеры:
- литерал числа:
сonst a = 5.4; // дробные числа пишуться всегда с точкой
- литерал строки, можно использовать двойные, одинарные или обратные кавычки.
const a = "Hello, I am Elya.";
const b = 'I live in Kharkiv.';
const c = `I am 15 years old.`;
const d = `Info about me: ${a} ${b} ${c}`; // строки подстановки, можно вставлять значения выражения внутрь строки
- литерал логического типа:
const yes = true;
const no = false;
-
литерал объекта
-
литерал массива
-
литерал отсутствующего значения
undefined
. Это значение объявленой переменной, которой не присвоено значение:
let a; // a === undefined
- литерал пустого значения
null
Логическое выражение - это выражение сравнения двух значений.
- операторы сравнения
console.log(1 > 2); // false
console.log(2*2 >= 1); // true
console.log("Lama" === ("La" + "ma")); // true
console.log("Hi" !== "OMG"); // true
- логические операторы
&&
- логическое И.
||
- логическое ИЛИ.
!
- логическое НЕ.
console.log(true && true); // true
console.log(false || true); // true
console.log((2*5 < 10) || (3*6 === 20)); // false
console.log(
(3*3 === 10) ||
(("Cafe" === "Sweeter") && (17 - 10 === 7))
); // false
Условный оператор позволяет выполнять блок кода, если какое-то условие истинно. Условный оператор имеет вид:
if(condition) {
// condition is true
} else {
// condition is false
}
condition
- выражение, которое вычисляется в true
или false
блок else
не обязателен
Цикл позволяет выполнить блок кода несколько раз. Циклы бывают двух типов: цикл с шагом и цикл с условием. Цикл с шагом позволяет выполнить блок кода заданное количество раз; цикл с условием позволяет выполнять блок кода, пока определенное условие истинно.
while(condition){
// код
}
Примеры:
- вывести в консоль числа от 1 до 10
let a = 1;
while(a <= 10){
console.log(a);
a = a + 1;
}
Цикл с шагом позволяет выполнить тело цикла определенное количество раз. Цикл с шагом используется, когда количество повторений известно заранее, или может быть вычислено.
for (
// инициализация цикла: объявление переменных и установка их значений
;
// условия завершение цикла: сравнение переменной с каким-то значением
;
// шаг цикла: изменение значения переменной
){
//code
}
Пример:
- вывести в консоль числа от 1 до 10
for(let i = 1; i <= 10; i = i + 1){
console.log(i);
}
- вывести в консоль числа от 1 до 10 с шагом 2
for(let y = 1; y <= 10; y = y + 2){
console.log(y);
}
Директива break
дает нам возможность прервать цикл без проверки условий в любой момент. Далее оператор передаёт управление на строку за телом.
Директива continue
также прерывает выполнение цикла, но не всего, а только той части, которая находиться после этого слова.
Объекты и массивы позволяют объединить несколько значенийм в группу. С этой группой можно обращаться, как с одним значением: сохранять в переменную, передавать в функцию как аргумент, возвращать из функции. В то же время, можно получить доступ к каждому значению.
Объект группирует несколько значений в одно; каждое значение в объекте будет доступно по имени. Эти значения называются полями или свойствами объекта.
Массив группирует несколько значений в список; каждое из значений будет доступно по порядковому номеру, который называется индекс. Первое значение в массиве будет иметь индекс, равный нулю.
В полях объекта и в элементах массива могут лежать значения любого типа: примитивные значения (числа, логические значения, null
, undefined
), другие объекты, другие массивы и функции.
- задание объекта при помощи литерала объекта
const person = {
name: `Elya`,
age: 15
};
console.log(person.name); // Elya
console.log(person.age); // 15
person.age = 30;
console.log(person.age); // 30
console.log(person.dog); // undefined
- создание пустого объекта
const m = {};
- создание объекта путем задания свойств:
const person = {};
person.name = `Elya`;
person.age = 15;
- задание вложенных объектов
const person = {
name: `Elya`,
age: 12,
dog: {
"Year of birth": 2003,
name: `William`
}
};
console.log(person.dog.name) // William
console.log(person.dog["Year of birth"]) // 2003
- функция как поле объекта
const person = {
name: `Elya`,
sayhi: function (name){
console.log(`Hi, ${name}, I am ${this.name}`)
}
};
person.sayhi(`Katya`) // Hi, Katya, I am Elya
Массив - это специальный объект, который содержит в себе упорядоченный набор элементов, позволяет добавлять/удалять элементы, а также получать к ним доступ, используя порядковый номер элемента, который
называется индекс. Индекс первого элемента равен 0. В массиве могут лежать любые значения: примитивы,объекты, другие массивы, функции, null
и undefined
. Также в массиве могут лежать разные значения с разными индексами.
- литерал массива
const a = []; // empty array
const b = [3, 2, 1]; // array of numbers
const c = [`F`, `U`, `K`] // array of strings
const d = [{
name: `jim`,
age: 10
}, {
rate: 4,
hair: `blue`
}]; // array of objects
const e = [1, `Hi`, {
age: 14
}]; // array of vaiues of different types
const f = [[1, 2], [`Hi`, `Kara`]]; // array of arrays
- чтение и запись элемента массива. Для получения доступа к элементу массива используется оператор [ ]
const f = [1, 3];
console.log(f[0]) // выведет 1
f[1] = 10 // f - [1, 10]
- получение длины массива - используется свойство массива length
const g = [`H`, `A`, `Y`];
console.log(g.length);
Область видимости - это область внутри программы, в которой доступны определенные сущности: переменные, функции и другие.
Какие бывают области видимости:
-
тело функции(область внутри функции): в ней доступны
- параметры этой функции
- переменные, объявленные внутри функции
- функции, объявленные внутри функции
- переменные и функции из внешней области видимости В ней не доступны переменные, функции и др., объявленные в других функциях.
-
блочная область видимости - это область между открывающейся и закрывающейся фигруными скобками. Переменные, объявленные при помощи
let
иconst
доступны только в блочной области видимости, где они объявлены. -
глобальная область видимости : переменные и функции оттуда доступны в любом месте программы. Например, в глобальной области видимости находится объект
console
.