7 основных концептуальных упражнений по JavaScript с ответами и пояснениями

Вот некоторые из самых сложных упражнений JavaScript с ответами и пояснениями:

Каким будет вывод следующего кода?

console.log(1 + 2 + "3");

Ответ: Вывод будет «33. Оператор сложения (+) вычисляется слева направо, поэтому первая операция — это 1 + 2, в результате чего получается 3. Затем результат этой операции объединяется со строкой «3.

2. Что выведет следующий код?

console.log(typeof null);

Ответ: на выходе будет «объект». Это связано с тем, что в JavaScript null считается объектом. Однако на самом деле это ошибка языка, которая существовала с самого начала.

3. Что выведет следующий код?

const arr = [10, 12, 15, 21];
for (var i = 0; i < arr.length; i++) {
  setTimeout(function() {
    console.log('Index: ' + i + ', element: ' + arr[i]);
  }, 3000);
}

Ответ: вывод будет «Индекс: 4, элемент: не определен» четыре раза. Это связано с тем, что ключевое слово var используется для объявления переменной i, которая затем используется всеми итерациями цикла. К моменту выполнения функции setTimeout i уже увеличено до 4, а arr[4] не определено. Чтобы исправить это, вы можете использовать ключевое слово let вместо var для объявления переменной i, которая создает новую привязку для каждой итерации цикла.

const arr = [10, 12, 15, 21];
for (let i = 0; i < arr.length; i++) {
  setTimeout(function() {
    console.log('Index: ' + i + ', element: ' + arr[i]);
  }, 3000);
}

4. Что выведет следующий код?

function foo() {
  console.log(a);
  var a = 10;
}
foo();

Ответ: вывод будет «undefined». Это связано с тем, что хотя переменная a объявлена ​​внутри функции, она поднимается в начало функции и инициализируется значением undefined. Таким образом, при выполнении оператора console.log значение a равно undefined.

5. Что выведет следующий код?

console.log(typeof NaN);

Ответ: на выходе будет «число». Это связано с тем, что NaN означает «не число» и считается специальным значением числового типа.

6. Что выведет следующий код?

const obj1 = { a: 10, b: 20 };
const obj2 = { b: 30, c: 40 };
const obj3 = { ...obj1, ...obj2 };
console.log(obj3);

Ответ: вывод будет {a: 10, b: 30, c: 40}. Это связано с тем, что оператор расширения (…) используется для объединения свойств obj1 и obj2 в новый объект obj3. При наличии повторяющихся ключей приоритет имеет значение из последнего объекта в списке.

7. Что выведет следующий код?

const arr = [1, 2, 3, 4, 5];
const newArr = arr.filter(function(value) {
  return value > 3;
});
console.log(newArr);

Ответ: Вывод будет [4, 5]. Это связано с тем, что метод фильтра используется для создания нового массива со всеми элементами, прошедшими проверку, реализованную предоставленной функцией.

Спасибо за чтение.

Пожалуйста, следуйте за мной Гопеш Джангид

Спасибо !!!