JavaScript - Basic


 Toc

Hello, world

hello world в alert.

Асинхронные скрипты defer/async

async - полностью асинхронная загрузка скриптов
defer - выполняется асинхронно, но 1) порядок сохраняется; 2) выполняется после загрузки всей страницы;


$ cat script1.js
console.log(1);

$ cat script2.js
setTimeout( function () {
  console.log(2);
}, 2000);

$ cat script3.js
setTimeout(function () {
  console.log(3);
}, 3000);

Без async


<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Hello, world</title>
</head>
<body>
    <script src="script1.js"></script>
    <script src="script2.js"></script>
    <script src="script3.js"></script>
    <script>console.log("hi")</script>
</body>
</html>

script1.js:1 1
index.html:11 hi
script2.js:2 2
script3.js:2 3

С async


<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Hello, world</title>
</head>
<body>
    <script async src="script1.js"></script>
    <script async src="script2.js"></script>
    <script async src="script3.js"></script>
    <script>console.log("hi")</script>
</body>
</html>

index.html:11 hi
script1.js:1 1
script2.js:2 2
script3.js:2 3

С defer


<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Hello, world</title>
</head>
<body>
    <script async src="script1.js"></script>
    <script async src="script2.js"></script>
    <script async src="script3.js"></script>
    <script>console.log("hi")</script>
</body>
</html>

index.html:11 hi
script1.js:1 1
script2.js:2 2
script3.js:2 3

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

  1. Объявите две переменные: admin и name.
  2. Запишите в name строку "Василий".
  3. Скопируйте значение из name в admin.
  4. Выведите admin (должно вывести «Василий»).

var admin, name;
name = "Вася";
admin = name;
alert(admin);

Объявление переменных

  1. Создайте переменную для названия нашей планеты и присвойте ей значение "Земля". Правильное имя выберите сами.
  2. Создайте переменную для имени посетителя со значением "Петя". Имя также на ваш вкус.

var earth = "Земля", user_name = "Петя";

Взаимодействие с пользователем: alert, prompt, confirm

Простая страница

Создайте страницу, которая спрашивает имя и выводит его.


var name = prompt("Как вас зовут?", '');
alert(name);

Условные операторы: if, ‘?’

Проверка стандарта

Используя конструкцию if..else, напишите код, который будет спрашивать: «Каково «официальное» название JavaScript?».

Если посетитель вводит «ECMAScript», то выводить «Верно!», если что-то другое – выводить «Не знаете? «ECMAScript»!».


var answer = prompt('Каково "официальное" название JavaScript?', '');

if (answer == 'ECMAScript'){
    alert("Верно!");
} else {
    alert('Не знаете? "ECMAScript"!');
}

Получить знак числа

Используя конструкцию if..else, напишите код, который получает значение prompt, а затем выводит alert:

  • 1, если значение больше нуля,

  • -1, если значение меньше нуля,

  • 0, если значение равно нулю.


var number = prompt("Введите число", '');
if (number > 0){
    alert(1);
} else if ( number < 0 ){
    alert(-1);
} else if ( number === 0 ) {
    alert(0);
}

Проверка логина

Напишите код, который будет спрашивать логин (prompt).

Если посетитель вводит «Админ», то спрашивать пароль, если нажал отмена (escape) – выводить «Вход отменён», если вводит что-то другое – «Я вас не знаю».

Пароль проверять так. Если введён пароль «Чёрный Властелин», то выводить «Добро пожаловать!», иначе – «Пароль неверен», при отмене – «Вход отменён».


var login = prompt('Введите логин', '');
if ( login == 'Админ' ){
    var password = prompt('Введите пароль', '');
    if ( password == 'test'){
        alert("Welcome");
    } else if ( password == null ){
        alert("Вход отменён");
    } else {
        alert("Пароль неверен");
    }
} else if ( login == null ){
    alert("Вход отменён");
} else {
    alert("Я вас не знаю");
}

Перепишите ‘if’ в ‘?’

Перепишите if с использованием оператора '?':


if (a + b < 4) {
  result = 'Мало';
} else {
  result = 'Много';
}

result = (a + b < 4) ? 'Мало' : 'Много';

Перепишите ‘if..else’ в ‘?’

Перепишите if..else с использованием нескольких операторов '?'.

Для читаемости – оформляйте код в несколько строк.


var message;

if (login == 'Вася') {
  message = 'Привет';
} else if (login == 'Директор') {
  message = 'Здравствуйте';
} else if (login == '') {
  message = 'Нет логина';
} else {
  message = '';
}

var message =   (login == 'Вася')     ? 'Привет' : 
                (login == 'Директор') ? 'Здравствуйте' :
                (login == '')         ? 'Нет логина' : '';

Проверка if внутри диапазона

Напишите условие if для проверки того факта, что переменная age находится между 14 и 90 включительно.

«Включительно» означает, что концы промежутка включены, то есть age может быть равна 14 или 90.


var age = prompt("age", 14);
if ( age >= 14 && age <= 90 ){
    alert(true);
}

Проверка if вне диапазона

Напишите условие if для проверки того факта, что age НЕ находится между 14 и 90 включительно.

Сделайте два варианта условия: первый с использованием оператора НЕ !, второй – без этого оператора.


var age = prompt("age", 14);
if ( !( age >= 14 && age <= 90 ) ){
    alert(true);
}

var age = prompt("age", 14);
if ( age < 14 || age > 90 ){
    alert(true);
}