front-end
March 17, 2020

5 питань для підготовки до інтерв'ю по JavaScript. Part 4

17.03.20. Час прочитання - 6 хв

Ловіть наступну серію питань та відповідей, які допоможуть підготуватися до співбесіди. Попередні частини шукайте у нашому блозі під тегом "front-end".

1. Для чого використовується оператор "!!"?

Оператор "!!" (Подвійне заперечення) приводить значення праворуч від нього до логічного значення.

console.log(!!null) // false
console.log(!!undefined) // false
console.log(!!'') // false
console.log(!!0) // false
console.log(!!NaN) // false
console.log(!!' ') // true
console.log(!!{}) // true
console.log(!![]) // true
console.log(!!1) // true
console.log(!![].length) // false

2. Як записати декілька виразів в один рядок?

Для цього ми можемо використовувати оператор "," (кома). Цей оператор «рухається» зліва направо і повертає значення останнього виразу або операнда.

let x = 5
x = (x++, x = addFive(x), x *= 2, x -= 5, x += 10)

function addFive(num) {
    return num + 5
}

Якщо ми виведемо значення x в консоль, то отримаємо 27. Спочатку ми збільшуємо значення x на одиницю (x = 6). Потім викликаємо функцію addFive () з параметром 6, до якого додаємо 5 (x = 11). Після цього ми множимо значення x на 2 (x = 22). Потім віднімаємо 5 (x = 17). І, нарешті, додаємо 10 (x = 27).

3. Які значення в JS є помилковими?

const falsyValues = ['', 0, null, undefined, NaN, false]

Помилковими є значення, результатом перетворення яких в логічне значення є false.

4. Як перевірити, чи значення помилкове?

Слід використовувати функцію Boolean або оператор "!!" (Подвійне заперечення).

5. Для чого використовується директива «use strict»?

«Use strict» - це директива ES5, яка змушує весь наш код або код окремої функції виконуватися в суворому режимі. Суворий режим вводить деякі обмеження по написанню коду, тим самим дозволяючи уникати помилок на ранніх етапах.

Ось які обмеження накладає суворий режим.

Не можна присвоювати значення або звертатися до неоголошених змінних:

function returnY() {
    'use strict'
    y = 123
    return y
}
returnY() // Uncaught ReferenceError: y is not defined

Заборонено присвоювати значення глобальний змінним, доступним тільки для читання або запису:

'use strict'
var NaN = NaN // Uncaught TypeError: Cannot assign to read only property 'NaN' of object '#<Window>'
var undefined = undefined
var Infinity = 'and beyond'

Не можна видалити властивість об'єкта, що не видаляється:

'use strict'
const obj = {}

Object.defineProperties(obj, 'x', {
    value: 1
})

delete obj.x // Uncaught TypeError: Property description must be an object: x

Заборонене дублювання параметрів:

'use strict'

function someFunc(a, b, b, c) {} // Uncaught SyntaxError: Duplicate parameter name not allowed in this context

Не можна створювати функції за допомогою функції eval:

'use strict'

eval('var x = 1')

console.log(x) // Uncaught ReferenceError: x is not defined

Значенням «this» за замовчуванням є undefined:

'use strict'

function showMeThis() {
    return this
}

showMeThis() // undefined

Сподіваємось, що дані публікації є для Вас корисними та цікавими 🤗 Успіху, терпіння і радості від нових знань!