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]. Это связано с тем, что метод фильтра используется для создания нового массива со всеми элементами, прошедшими проверку, реализованную предоставленной функцией.
Спасибо за чтение.
Пожалуйста, следуйте за мной Гопеш Джангид
Спасибо !!!