Питання по 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 має велику кількість методів для роботи з елементами, їх створенням, модифікацією, видаленням і т.д.


Сподіваємось, що ця інформація буде корисною для Вас😊
Якщо хочете продовження, то також залишайте Ваші плюсики в коментарях
👇🏻