Главная » Примеры задач с реальных собеседований, тест на понимание основ JavaScript.

Примеры задач с реальных собеседований, тест на понимание основ JavaScript.


24.03.2021, 22:06

1. Какое будет выведено значение:

Код
let x = 5; alert( 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 == b ?

Код
a = [1, 2, 3]; b = [1, 2, 3];

10. Что выведет этот код:

Код
alert( +"Infinity" );

11. Верно ли сравнение:

Код
"Ёжик" > "яблоко"

12. Чему равно

Код
0 || "" || 2 || undefined || true || falsе







1. 5
Так как постфиксная форма инкремента возвращает сначала значение без изменений (5), а лишь потом инкрементирует его на единицу (6)

2. NaN
Пустой массив при конкатенации превращается в пустую строку, поэтому :

Код

[] + false // => "false" (строка)

далее по цепочке получим NaN как результат выполнения не математических операций (из строки вычитаем null):

Код

[] + false - null // => NaN

3. 2

4. 12
Пустой массив при конкатенации превращается в строку, конкатенируется с числом 1, которое также превращается в строку, затем с числом 2.

Код

[] + 1 // => "1"

Код

[] + 1 + 2 // => "12"

5. 1
Здесь строка как массивоподобный объект, имеющий один элемент (1), вызываемый по индексу 0 элемент этого массива и есть 1.

6. null
Оператор &&("и") всегда запинается на лжи, а первым оператором, дающим false в логическом контексте, у нас в выражении будет null, он и будет результатом выражения

7. выражения не равны, так как два восклицательных знака превращают следующее за ними выражение в булиновое

Код

!!(1 && 2) // => true

а выражение справа вернёт число:

Код

1 && 2 // => 2

При строгом сравнении выражения будут не равны:

Код

!!(1 && 2) === (1 && 2) // => true не равно 2

8. 3
В таблице приоритетов операторов логическое &&("и") имеет больший приоритет, чем логическое || ("или"), поэтому выполняться будет раньше:

Код

2 && 3 // => возвращается последнее значение (3)

далее сравнивается левая часть, по сути получаем такое сравнение:

Код

null || 3 // => 3

Оператор || ("или") запинается на правде, поэтому вернётся 3

Код

null || 2 && 3 // => 3

Теперь сравниваем уже правую часть:

Код

3 && 4 // => 3

9. нет

10. В алерте лежит обычная строка с унарным плюсом перед ней, а это значит, что строка превратится в числовой тип данных, соответственно выведет Infinity с типом данных Number

11. не верно

Код

const str1 = "Ёжик";
const str2 = "яблоко";
console.log(str1.charCodeAt(0)); /* => 1025 */
console.log(str2.charCodeAt(0)); /* => 1103 */
console.log(str1.charCodeAt(0) > str2.charCodeAt(0)); /* => false */
   
1025 > 1103 // => false

12. 2
Так как 0 и пустая строка в логическом контексте дают false, а оператор || ("или") запинается на правде, то число 2 - первое в выражении что вернёт true, оно и будет результатом выражения

КОММЕНТАРИИ (0)

ТЕГИ МАТЕРИАЛА
задачи с собеседований
РЕЙТИНГ МАТЕРИАЛА (0.0 / 0)