После просмотра нескольких туториалов по JavaScript на Udemy или YouTube и создания нескольких реальных проектов вы все равно не сможете устроиться на работу разработчиком JavaScript. Это связано с тем, что многие разработчики упускают из виду основные концепции программирования и сосредотачиваются на больших и сложных концепциях. В этой статье будут освещены некоторые из основных вопросов, которые могут возникнуть на собеседовании по JavaScript, и как правильно на них ответить.

  1. В чем разница между ключевыми словами "var" и "let"?

И «var», и «let» используются для объявления переменных, которые можно переназначать. то есть те, которые не являются константами. Однако они все же сильно отличаются друг от друга.

а. `var` был в языке JavaScript с самого начала, а `let` был представлен в ES2015/ES6.

б. `var` имеет «область действия». Это означает, что он умирает в конце функции, в которой он определен, в то время как `let` имеет «область действия блока», что означает, что он умирает в конце блока, в котором он определен.

// Function Scope
function fScope() {
  var x = 100;
}
console.log(x);
// this will throw an error that x is not defined since x is only accessible within the function it's defined in
// Block Scope
let function(){
}

в. Переменные, определенные с помощью `var`, "поднимаются" вверху функции, а переменные, определенные с помощью `let ` не получить "поднятие". Это означает, что они не существуют до их определения.

console.log(x);
console.log(y);
var x = '4';
let y = 3;
// The second line will throw an error:y is not defined

2. В чем разница между операторами сравнения «==» и «===»?

а. «==» сравнивает только значения с обеих сторон, а «===» сравнивает значения и типы.

Примечание:‘==’ пытается сделать значения обеих сторон равными, делая их одного типа.

// == will give an output of 'Age is 55 while === will give an  output of 'Wrong!'
var age = '55';
if (age === 55){
   console.log('Age is 55');
} else {
   console.log('Wrong!');
}

3. В чем разница между ключевыми словами «let» и «const»?

`const`используется для определения констант → переменных, которые нельзя переназначить, в то время как`let`используется для определения переменные, которые можно переназначить.

Если вы определяете массив с помощью `const`, вы можете только поместить элемент в массив, но не можете переназначить его.

const x = [1, 5];
x.push(7); // this will work and result in an array that looks like [1, 5, 7]
const x = [1, 5, 7]; // will result in an error
/*
* When using `let`, you can reassign a variable as many times as you want
*/
let age = 50;
let age = '50';
let age = 'fifty';

4. В чем разница между ‘null’ и ‘undefined’?

Оба представляют пустое значение в переменной. Когда вы определяете переменную и не можете присвоить значение, JavaScript автоматически помещает заполнитель с именем undefined'. В случае 'null', программист вручную присваивает переменной значение 'null'.

Чтобы ответить на этот вопрос более критическим образом, вы можете сказать, что когда вы проверяете тип null и undefined, вы получаете следующий вывод.

typeOf(undefined) -> undefined
typeOf(null) -> object 

5. Для чего используются стрелочные функции?

6. Что такое прототипное наследование/наследование на основе прототипов.

7. Разница между объявлением функции и выражением функции.

8. Что такое обещания и почему мы их используем.

Продолжение следует >>