«Единственный способ творить великие дела – это любить то, что ты делаешь»
JavaScript



Игра «Морской Бой» на JavaScript: Простая Игра и Игра для Двоих



Здесь будут рассмотрены задачи JavaScript, задаваемые на реальных собеседованиях.

Желательно самостоятельно решить задачи на понимание основ языка JavaScript.

Ниже представлены условия задач. И далее их решения.

1) Какое будет выведено значение: let x = 5; console.log(x++); ?

2) Чему равно такое выражение: [ ] + false - null + true ?

3) Что выведет этот код: let y = 1; let x = y = 2; alert(x); ?

4) Чему равна сумма [ ] + 1 + 2?

5) Что выведет этот код: alert( "1"[0] )?

6) Чему равно 2 && 1 && null && 0 && undefined ?

7) Есть ли разница между выражениями? !!( a && b ) и (a && b)?

8) Что выведет этот код: alert( null || 2 && 3 || 4 ); ?

9) a = [1, 2, 3]; b = [1, 2, 3]; Правда ли что a == b ?

10) Что выведет этот код: alert( +"Infinity" ); ?

11) Верно ли сравнение: "Ёжик" > "яблоко"?

12) Чему равно 0 || "" || 2 || undefined || true || falsе ?



1-я задача - Постфикс и Префикс

1) Какое будет выведено значение: let x = 5; console.log(x++); ?


let x = 5; 

console.log(x++);

Результат


5

Ответ 5. Потому что постфиксная форма записи сначала возвращает старое значение. Об этом шла речь здесь.

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

let x = 5; 

console.log(x++);

console.log(x);

Результат


5
6

Или нужно было сделать так...


let x = 5; 

x++;

console.log(x);

Результат


6

Или воспользоваться префиксной формой записи.


let x = 5; 

console.log(++x);

Результат


6

Сложение различных типов данных

Задача №2 - Сложение различных типов данных в JavaScript

Чему равно такое выражение: [ ] + false - null + true ?

Чтобы правильно решить эту задачу требуется анализ. Поэтому это задание следует выполнить поэтапно.

Математические операции: сложение и вычитание - выполняются последовательно друг за другом. О порядке выполнения операторов читайте здесь.

1-ый этап. Что дает сложение пустого массива с булевым значением [ ] + false ?


console.log([ ] + false); // 'false'
console.log(typeof([ ] + false));

Результат

false
string

Результат false и это строка. Почему?

Следует запомнить, что в подобных выражениях пустой массив [ ] конвертируется в строку "". Это уже не тип данных object, а тип данных string.

Таким образом в данном контексте запись [ ] + false (сложение массива и false) идентична записи "" + false (сложение строки и false) .

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

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

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

2-ой этап. Из строки нужно отнять (вычесть) null. Каков результат?


console.log([ ] + false); // 'false'

console.log([ ] + false - null);

Результат

false
NaN

Вычитание из строки другого типа данных - это бессмысленная математическая операция. Поэтому в результате мы увидим NaN - не число.

3-ий этап. Что дает сложение NaN с булевым значением?


console.log([ ] + false); // 'false'

console.log([ ] + false - null); // NaN

console.log([ ] + false - null + true);

Результат

false
NaN
NaN

Сложение не числа NaN с булевым значением дает в результате NaN.

Итог. Чему равно такое выражение: [ ] + false - null + true ? Ответ NaN.

При решении этой задачи нужно понимать, как работает динамическая типизация.

И самое главное - запомнить особенность с пустым массивом (см. 1-ый этап).



Читайте также...



Отзывы и комментарии:

Комментариев нет...

Оставить отзыв:

Ваше Имя:

Текст комментария:

Ответьте на вопрос:

Сколько дней в Високосном году?


Рунет - Часть 3

Тематические публикации
Популярные заметки
Последние заметки