Найти тему

Junior JS. Вопросы на собеседовании.

Примеры вопросов по JavaScript, которые могут задать на собеседовании на позицию Junior.

1) Что такое оператор typeof?

Это оператор, проверяющий значение и тип переменной.

var a;
typeof a; // "undefined"

a = "hello world";
typeof a; // "string"

a = 42;
typeof a; // "number"

a = true;
typeof a; // "boolean"

a = null;
typeof a; // "object" -- weird, bug

a = undefined;
typeof a; // "undefined"

a = { b: "c" };
typeof a; // "object"

2) Как узнать значение свойства объекта?

var obj = {
a: "hello world", // property
b: 42,
c: true
};

obj.a; // "hello world", accessed with doted notation
obj.b; // 42
obj.c; // true
obj["a"]; // "hello world", accessed with bracket notation
obj["b"]; // 42
obj["c"]; // true

Используйте квадратные скобки, если хотите точно получить свойство объекта.

var obj = {
a: "hello world",
b: 42
};

var b = "a";

obj[b]; // "hello world"
obj["b"]; // 42

Массив - это объект, который содержит значения (любого типа) не в именованных свойствах / ключах, а в позициях с нумерацией.

var arr = [
"hello world",
42,
true
];

arr[0]; // "hello world"
arr[1]; // 42
arr[2]; // true
arr.length; // 3

typeof arr; // "object"

4) Что такое принуждение в JS?

Это преобразование между двумя различными типами. Бывает явным и неявным.

Пример явного принуждения:

var a = "42";

var b = Number( a );

a; // "42"
b; // 42 -- число

Пример неявного принуждения:

var a = "42";

var b = a * 1; // "42"

a; // "42"
b; // 42 -- число

5) Объясните равенство в JavaScript

Равенство — это сравнение на соответствие данных. Бывает строгое (учитывается тип данных) и абстрактное (тип не учитывается).

var a = "42";
var b = 42;

a == b; // true
a === b; // false

6) Что такое область видимости?

Область видимости переменной — это часть контекста выполнения, в котором эта переменная существует. Область видимости определяет, есть ли у вас доступ к переменной в данном контексте выполнения. Каждая функция получает свою область видимости. Область действия - это в основном набор переменных, а также правила доступа к этим переменным по имени. Только код внутри этой функции может получить доступ к переменным области действия этой функции. Имя переменной должно быть уникальным в той же области видимости. Область может быть вложена в другую область. Если одна область вложена в другую, код внутри самой внутренней области может получить доступ к переменным из любой области.