Питання по JavaScript, які допоможуть при підготовці до інтерв'ю
27.02.20. Час прочитання - 8 хв
В нашому блозі ми отримали коментар студента про те, що є певний острах перед співбесідою, тому ми вирішили допомогти Вам з підготовкою, озброївши відповідями, які найчастіше зустрічаються на інтерв’ю. Будемо публікувати частинами по 5 питань, щоб інформація краще засвоювалась.
Ловіть першу п’ятірку👇👇👇
1. В чому різниця між null і undefined?
Щоб розібратись в різниці, варто виявити спільні характеристики, а це:
🔴Вони належать до 7 «примітивів» (примітивні типи) JS:
let primitiveTypes = ['string', 'number', 'null', 'undefined', 'boolean', 'symbol', 'bigint']
🔴Це помилкові значення, тобто результатом їх перетворення в логічне значення за допомогою Boolean () або оператора "!!" є false:
console.log(!!null) // false
console.log(!!undefined) // false
console.log(Boolean(null)) // false
console.log(Boolean(undefined)) // false
А тепер про різницю:
За замовчуванням undefined («невизначений») являє собою значення:
🔴Змінної, якій не було присвоєно значення, тобто оголошеної, але не ініціалізованої змінної;
🔴Функції, яка нічого не повертає явно, наприклад, console.log (1);
🔴Властивість об'єкта, що не існує.
let _thisIsUndefined
const doNothing = () => {}
const someObj = {
a: 'ay',
b: 'bee',
c: 'si'
}
console.log(_thisIsUndefined) // undefined
console.log(doNothing()) // undefined
console.log(someObj['d']) // undefined
Null - це «значення відсутності значення».
Null - значення, яке присвоюється змінній явно. У прикладі нижче ми отримуємо null, коли метод fs.readFile спрацьовує без помилок:
fs.readFile('path/to/file', (e, data) => {
console.log(e) // тут ми отримуємо null
if(e) {
console.log(e)
}
console.log(data)
})
Порівнюючи null і undefined ми отримуємо true, коли використовуємо оператор "==", і false при використанні оператора "===".
2. Для чого використовується оператор "&&"?
Оператор "&&" (логічне "і") знаходить і повертає перше помилкове значення або останній операнд, коли всі значення істинні. Він використовує коротке замикання, щоб уникнути зайвих витрат:
сonsole.log(false && 1 && []) // false
console.log(' ' && true && 5) // 5
З оператором «if»:
const router: Router = Router()
router.get('/endpoint', (req: Request, res: Response) => {
let conMobile: PoolConnection
try {
// операції з базою даних
} catch (e) {
if (conMobile) {
conMobile.release()
}
}
})
Те саме з оператором "&&":
const router: Router = Router()
router.get('/endpoint', (req: Request, res: Response) => {
let conMobile: PoolConnection
try {
// операції з базою даних
} catch (e) {
conMobile && conMobile.release()
}
})
3. Для чого використовується оператор "||"?
Оператор "||" (логічне "або") знаходить і повертає перше істинне значення. Він використовує коротке замикання. Даний оператор використовувався для присвоєння параметрів за замовчуванням у функціях ще до того, як параметри за замовчуванням були стандартизовані в ES6.
console.log(null || 1 || undefined) // 1
function logName(name) {
let n = name || Mark
console.log(n)
}
logName() // Mark
4. Чи є використання унарного плюса (оператор "+") найшвидшим способом перетворення рядка в число?
Згідно MDN оператор "+" дійсно є найшвидшим способом перетворення рядка в число, оскільки він не виконує ніяких операцій зі значенням, яке є числом.
5. Що таке DOM?
DOM або Document Object Model (об'єктна модель документа) - це прикладний програмний інтерфейс (API) для роботи з HTML і XML документами. Коли браузер перший раз читає HTML документ, він формує великий об'єкт, дійсно великий об'єкт, заснований на документі - DOM. DOM має деревоподібну структуру (дерево документа). DOM використовується для взаємодії та зміни самої структури DOM або його окремих елементів і вузлів.
Припустимо, у нас є такий HTML код:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document Object Model</title>
</head>
<body>
<div>
<p>
<span></span>
</p>
<label></label>
<input>
</div>
</body>
</html>
DOM цього HTML виглядає так:
В JS DOM представлений об'єктом Document. Об'єкт Document має велику кількість методів для роботи з елементами, їх створенням, модифікацією, видаленням і т.д.
Сподіваємось, що ця інформація буде корисною для Вас😊 Якщо хочете продовження, то також залишайте Ваші плюсики в коментарях👇🏻