Здравствуйте, меня зовут Мехзад Галиб, младший веб-разработчик из Бангладеш. Если вы читаете эту статью, я уверен, что вы разработчик JavaScript, который, возможно, не получил свою первую работу разработчика. На собеседовании работодатель должен задать вам вопросы, которые я собираюсь обсудить. Я дам краткие ответы на все вопросы, которые я упоминаю. Итак, приступим к делу:
1. Различие между Null и Undefined
Это популярный вопрос на собеседовании для разработчиков JavaScript. Короче говоря, Null — это несуществующее значение, его можно установить где угодно, прежде чем устанавливать фактическое значение для переменных. Переменной можно присвоить null. С другой стороны, мы можем получить undefined различными способами:
Случай A.Доступ к переменной перед установкой ее значения:
let person; console.log(person); // returns undefined
Случай B: если функция явно ничего не возвращает:
function personSalary(salary){ console.log(salary) } personSalary(45) // personSalary() doesn't return anything, so it will return undefined
Случай C: если мы не передаем параметр функции, но все равно вызываем его:
function add(a, b){ return a + b } add(54); // returns undefined because add() needs 2 parameters
Случай D: если мы хотим получить доступ к свойству объекта, которого нет:
const person = {name: 'ahmed', salary: 450}; console.log(person.address) // will return undefined because person object has no property as 'address'
Случай E: если мы устанавливаем значение переменной «undefined»:
let people = undefined; console.log(people) // returns undefined
Случай F: индексировать значение из массива:
const nums = [45,35,69,74,22] console.log(nums[11]) // nums array don't have an 11th index value, so it will return undefined
Вот изображение, которое может завершить эту дискуссию:
2. Что такое значения «Truthy» и «Falsy» в JavaScript:
В JavaScript значения «Truthy» — это в основном значения, которые возвращают логический эквивалент «true», а «ложные» значения возвращают «false». В общем, истинные значения могут быть чем угодно допустимым, например допустимым выражением или рациональной переменной, что означает что-то, с чем мы можем работать. С другой стороны, ложные значения не являются допустимыми выражениями в JavaScript. Ложные выражения в JavaScript: false, undefined, null, 0, NaN и пустая строка (" ").
3. Разница между двойным равным (==) и тройным равным (===)
Двойное равенство (==) — это нестрогий тип равенства в JavaScript, который проверяет только значение обоих концов. Напротив, тройное равенство (===) — это строгий тип равенства, который проверяет как тип, так и значение обоих концов. Пример кода может прояснить ситуацию:
console.log(7 == '7') // the above will return true, because both 7 and '7' has the same numeric value console.log(7 === '7') // the above will return false, because 7 and '7' is not the same data type, one is number and another is a string.
4. Глобальная область действия и область действия блока:
В среде кода глобальная область видимости находится за пределами любой функции или условия, или, можно сказать, любого блока. Любой может получить доступ или изменить любую глобальную переменную в программе. Область действия блока противоположна, мы не можем получить доступ или изменить локальную переменную области вне блока, такую как функция или условие.
5. Различия между Bind, Call и Apply:
Короче говоря, метод «вызов» и «применить» устанавливает ключевое слово «это» и немедленно вызывает функцию. Но метод bind только создает копию функции и связывает ключевое слово this, мы можем вызывать копию функции в любом месте, где пожелаем.
Но методы call и apply не совсем похожи, у них есть небольшая разница. Метод call требует передачи аргументов по одному в нужную функцию, а метод apply принимает аргументы в виде массива.
Примеры следующие: для метода вызова
const customer1 = {name: 'ahmed', occupation: 'teacher'}; function greetings(msg){ console.log(`${msg} ${this.name}`) } greetings.call(customer1, 'hi') // call method immediately invokes the function, returns 'hi ahmed', takes argument one by one
Для метода применения:
const customer2 = {name: 'jamal', occupation: 'soldier'}; function greetings(msg1, msg2){ console.log(`${msg} ${this.name} ${msg2}`) } greetings.apply(customer2, ['Hello', 'How are you?']); // output Hello Jamal, How are you?
Для метода Bind:
let customer3 = { name: 'Natalia', email: '[email protected]' }; function greeting(text) { console.log(`${text} ${this.name}`); } let helloNat = greeting.bind(customer3); helloNat('Hello'); // returns 'Hello Natalia'
6. Понимание ключевого слова «Это»:
Ключевое слово This в JavaScript — это, по сути, объект, на который оно ссылается. Он имеет разные значения в зависимости от того, где он используется.
Само по себе это относится к глобальному окну/объекту.
В функции (нестрогий режим) это также относится к глобальному объекту.
В функции (строгий режим) это возвращает undefined.
В методе класса/функции this относится к объекту-владельцу.
В таких методах, как call и apply, это относится к любому объекту.
В обработке событий это относится к элементу, получившему событие.
7. Какова цель ключевого слова «Новое»:
Ключевое слово «Новый» в основном создает простой и простой объект класса JavaScript. Синтаксис: новый конструктор[([аргументы])]
function Bike(name, year, speed){ this.name = name; this.year = year; this.speed = speed; } const yamaha = new Bike('Yamaha', 1998, 60) // a new object of class Bike has been created
8. Различия между ключевыми словами Var, Let, Const:
В более ранней версии JavaScript был только один способ объявить переменную — «var», более короткая форма ключевого слова переменной целиком. Но JavaScript ES6 представляет два новых специальных ключевых слова, которые являются более мощными и информативными.
я. Ключевое слово «let» используется для объявления чего-то, что может быть обновлено позже в рамках функции, цикла или любого условного оператора.
II. Ключевое слово const используется для объявления некоторого значения, которое не изменится в области видимости. Оба этих ключевых слова используются в локальной области видимости и известны как переменная локальной области видимости.
III. Ключевое слово «var» также используется для объявления функции, но оно имеет глобальную область видимости и поднимается программой наверх.
9. Что такое шаблонные литералы:
Шаблоны используются для записи некоторых переменных, встроенных в виде строк, и полезны для объявления некоторых динамических значений в шаблоне. Это похоже на строковый метод, но лучше. Шаблоны записываются внутри знаков ``(обратная галочка) слева от клавиши «1».
const name = 'ahmed' const age = 56; let statement= `${name} is ${age} years old`;
10. Оператор распространения JavaScript:
Оператор распространения в основном берет итерируемый элемент (либо массив, либо объект) и расширяет его до списка элементов. Мы можем использовать оператор распространения для использования элементов массива или объекта в другом массиве или объекте, даже в некоторых математических функциях. Основной синтаксис: […массив]
const arr1 = [12,35,356,89,554] const arr2 = [54,68,59,21] const combined = [25, ...arr1, 63, ...arr2] console.log(combined) // will return [25,12,35,356,89,554,63,54,68,59,21]
Спасибо, что прочитали эту статью, надеюсь, она поможет вам в будущем. Удачи!!!