Используйте эти вопросы и ответы на запросы JavaScript, чтобы помочь вам попрактиковаться и проверить свое (или другого соискателя) понимание этого известного языка программирования, используемого в различных современных системах.

В этом руководстве мы разделяем наиболее важные и наиболее обычные запросы JavaScript, о которых следует знать, на три области:

Тем не менее, мы не просто предлагаем вам специализированный ответ — вы можете сразу же найти любое учебное упражнение по JavaScript или сайт обучения JS для них.

Скорее, вдобавок к стандартному специализированному ответу мы даем вам размышления, лежащие в основе вопроса: по какой причине спрашивающий спрашивает меня об этом? Что им действительно нужно знать, задавая мне этот вопрос? Как моя встреча могла бы лучше всего ответить на их запрос?

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

Пошаговое руководство по вопросам JavaScript для собеседования

1. Что такое логические операторы в JavaScript?

Логические операторы позволяют анализировать факторы и выполнять действия с учетом последствий корреляции. Специализированный скаут или начальник отдела кадров обычно задают вопросы на собеседовании по JavaScript, подобные этому, чтобы оценить опыт новичка в использовании языка и его основных моментов. Новичок должен иметь возможность разобраться в каждом интеллектуальном администраторе и его способе поведения — иметь возможность пройтись по каждому операнду и вычислить его результат.

В JavaScript есть четыре логических оператора:

  • || – OR
  • && – И
  • ! – НЕ
  • ?? — Нулевое слияние (см. следующий вопрос)

В JavaScript есть четыре логических администратора:

OR

Для обращения к администратору «ИЛИ» используются две вертикальные линии (||). В JavaScript администратор «ИЛИ» оценивает качества слева направо и возвращает первое истинное значение. Предполагая, что качества обычно не соответствуют действительности, администратор «ИЛИ» вернет последний операнд.

let x = 'Hello' || false; // x is equal to 'Hello' (first truthy value)

let y = false || 'Yes' || 1; // y is equal to 'Yes' (first truthy value)

let z = false || undefined || 0; // since all are false, z is equal to 0 (the last value)

И

Администратор «И» адресуется двумя амперсандами (&&). В JavaScript администратор «И» оценивает качества слева направо и возвращает первое ложное значение. Если все операнды допустимы, администратор «И» вернет последний операнд.

let x = 'Hello' && false; // x is equal to 'false' (first falsy value)

let y = 0 && 'Yes' && true; // y is equal to 0 (first falsy value)

let z = true && 'Hello' && 10; // since all are truthy, z is equal to 10 (the last value)

НЕ

К администратору «НЕ» обращается междометие (!). администратор «НЕ» признает одиночное состязание и возвращает обратную сторону его логического значения. Соперничество сначала преобразуется в логическое значение (действительное или вводящее в заблуждение). Затем логическое значение состязания изменяется и возвращается (подлинное оказывается вводящим в заблуждение, а также наоборот).

let x = !false; // x is equal to true

let y = !('Hello'); // y is equal to false ('Hello' is truthy)

2. Что такое нулевой оператор объединения в JavaScript?

Nullish blending — это новое расширение JavaScript, обеспечивающее более удобную и лаконичную грамматику для получения первой «охарактеризованной» оценки. Новичок должен иметь возможность понять, что такое нулевое микширование на существенном уровне, и как использовать администратора, когда его спросят об этом JS-интервью.

Нулевое комбинирование — это когерентный администратор JavaScript, к которому обращаются два вопросительных знака (??). Нулевое смешивание — это администратор, который получает первое «характерное» значение. «Охарактеризованный» здесь указывает на артикуляцию, ценность которой не является ни недействительной, ни неясной.

Как насчет того, чтобы взглянуть на то, как работает администратор.

a ?? b

Результат приведенного выше кода выглядит следующим образом:

в случае, если an охарактеризован, значение an возвращается

в случае, если an не охарактеризовано, возвращается значение b

Мы должны взглянуть на несколько случаев этого администратора, когда есть альтернативный порядок споров.

let undefinedUser;
console.log(undefinedUser ?? 'Anonymous'); // will print 'Anonymous'

let definedUser = 'Ryan';
console.log(definedUser ?? 'Anonymouse') // will print 'Ryan'

3. В чем разница между операторами == и === в Java?

В JavaScript есть два метода проверки честности. Очень важно понимать незаметное различие между двумя методами, чтобы предотвратить злоупотребление любой стратегией. У конкурента должна быть возможность разобраться в различиях и продемонстрировать фундаментальное понимание использования каждой стратегии.

Как двойные эквиваленты (==), так и тройные подходы (===) представляют собой корреляционные администраторы, предназначенные для размышлений о справедливости двух качеств.

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

Снова тройные подходы, проверьте строгий баланс — как ценность, так и тип анализируемого компонента. И ценность, и вид противопоставления должны соответствовать тройному эквиваленту администратора.

let x = 1; // number 1
let y = '1'; // string 1

if (x == y) {
    // true! Both x and y's values are equal
}

if (x === y) {
    // false! Although both x and y has the same value, x is a number where as y is a string
}

4. Что такое оператор спреда?

Администратор спреда — это компонент из ES6, помогающий выгрузить компонент. Конкуренты, задающие этот вопрос на собеседовании по JavaScript, должны иметь возможность продемонстрировать понимание того, как администратор распространения расширяет компонент — иметь возможность думать о результате администратора распространения.

Администратор распространения разрешает итерациям, таким как кластеры, элементы и строки, участвовать в одиночных соревнованиях. Администратор спреда обозначается тремя точками (…), за которыми следует расширяемая переменная.

Как насчет того, чтобы взглянуть на модель, в которой мы объединяем два кластера с помощью администратора распространения. Ниже у нас есть мужской и женский кластеры, содержащие пару строк каждый. Объединенный экспонат объединяет расширенный мужской и женский кластер, образуя единую выставку с предметами как мужского, так и женского пола.

const male = ['Mike', 'Alex', 'Bob'];
const female = ['Sam', 'Maggie'];

const combined = [...male, ...female];

console.log(combined); // will print ['Mike', 'Alex', 'Bob', 'Sam', 'Maggie']

5. Объясните циклы в JavaScript.

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

В JavaScript есть два основных способа создания кругов — в то время как и для. Эти два метода включают в себя условие для остановки круга и «тело круга», код, который будет выполняться в различных случаях.

в кружке

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

Фрагмент кода ниже показывает простой круг, который печатает значение I при каждом ударении и останавливается, когда I становится равным 3.

let i = 0;
while (i < 3) {
  console.log(i); // will print 0, 1, and 2
  i++;
}

цикл for

С другой стороны, для круга больше подходит для выполнения «кругового тела» приличное количество раз.

Аналогичный круг в прошлом фрагменте кода может быть перекомпонован с использованием круга for в следующих строках:

for (let i = 0; i < 3; i++) {
    console.log(i); // will print 0, 1, and 2
}

6. Объясните значение ключевого слова this.

Ключевое слово this широко используется в приложениях JavaScript. Он действует контрастно по сравнению с различными диалектами, такими как Java и Python. Участник должен иметь исчерпывающее представление о том, как работает этот лозунг и как он связан с его конкретной ситуацией.

Этот лозунг действует контрастно, опираясь на уникальную ситуацию гостя. Мы должны взглянуть на несколько параметров и на что ссылается это лозунг в каждом из них.

Глобальный контекст

Глобальная настройка намекает на все, что выходит за рамки любых возможностей — всемирная статья. это намекает на объект окна в интернет-браузерах и всемирную статью в приложениях Node.js.

Если вы выдадите свойство этому элементу в браузере, JavaScript добавит это свойство к объекту окна.

// in web browsers

this.name = 'Adam';

console.log(window.name) // will print 'Adam' in your console 

Контекст функции

Способности можно вызывать четырьмя уникальными способами.

Призыв способности
Призыв техники
Призыв конструктора
Призыв наотмашь
Каждый из призывов вызывает альтернативный способ поведения.

Вызов функции

В зависимости от того, используете ли вы «жесткий режим» или нет, этот лозунг указывает на различные качества.

Естественно, эта крылатая фраза относится к окну или глобальному элементу в зависимости от того, где вы запускаете приложение.

// in web browsers

function callMe() {
    if (this === window) {
        // true!
    }
}

В «суровом режиме» JavaScript устанавливает для этого лозунга расплывчатое значение.

"use strict"

function callMe() {
    if (this === window) {
        // false!
    }
    if (this === undefined) {
        // true!
    }
}

Вызов метода

В тот момент, когда вы вызываете стратегию для элемента (getName в приведенной ниже модели), этот лозунг устанавливается для элемента, который обладает техникой (клиент в приведенной ниже модели).

let user = {
    name: 'Bob',
    getName: function() {
        return this.name;
    }
}

console.log(user.getName()); // will print 'Bob' in your console

Вызов конструктора

Создание конструктора — это точка, в которой новое ключевое слово используется для создания другого варианта объекта возможности.

Новый пользователь («Боб») — это конструктор, вызывающий возможность клиента, где создается еще один пример возможности клиента. Этот лозунг для этой ситуации намекает на недавно сделанный объект.

function User(name) {
    this.name = name;
}

User.prototype.getName = function() {
    return this.name;
}

let user = new User('Bob');
console.log(user.getName()); // will print 'Bob' in your console

Косвенный вызов

Обратное заклинание — это момент, когда вызываемый объект возможности использует вызов или применяет крылатую фразу для вызова возможности. Обе эти стратегии допускают прохождение этого значения (bounce и adam в приведенной ниже модели) в качестве границы.

function sayHello(greeting) {
    console.log(`${gretting} ${this.name}`);
}

let bob = {
    name: 'Bob'
};
let adam = {
    name: 'Adam'
};

sayHello.call(bob, "Hello"); // will print 'Hello Bob' in your console
sayHello.call(adam, "Hi"); // will print 'Hi Adam in your console

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

sayHello.call(bob, ["Hello"]); // will print 'Hello Bob' in your console
sayHello.call(adam, ["Hi"]); // will print 'Hi Adam in your consol

7. В чем разница между вызовом, применением и привязкой?

В JavaScript есть различные подходы к неявному вызову возможности. Важно понимать различия между каждым из них и варианты их использования. Вы, как конкурент, должны иметь возможность вдумчиво разобраться в их различиях, а также в их случае использования и его объяснении.

call, apply и tie — это различные методы для присоединения возможности к элементу и вызова возможности внутри предопределенной настройки.

позвонить

Техника вызова создает возможность с предопределенной настройкой — возможность вызывается так, как будто она важна для статьи.

Возможность sayHello в приведенной ниже модели ссылается на this.name, который необходим для клиентского объекта (за пределами возможности sayHello). Мы можем использовать возможность call и передать клиентский объект в качестве главного конкурента, чтобы немедленно связать возможность sayHello и клиентский объект, предоставив ему доступ к свойству this.name.

let user = { name: 'Bill' };

function sayHello(greeting){
  console.log(`${greeting} ${this.name}`)
}

sayHello('Hello'); // will print 'Hello'

sayHello.call(user, 'Hello'); // will print 'Hello Bill'

применить

Техника применения неотличима от стратегии вызова, разница заключается в том, как каждая стратегия подтверждает свои утверждения. Техника вызова подтверждает список состязаний, в то время как стратегия применения подтверждает множество состязаний.

Используя ту же модель, что и выше, мы можем полностью переключить стратегию переноса на применение, обернув конфликты возможностей (за исключением уникальной ситуации — клиента) в демонстрацию, прежде чем передать ее для применения метода.

let user = { name: 'Bill' };

function sayHello(greeting){
  console.log(`${greeting} ${this.name}`)
}

sayHello.apply(user, ['Hello']); // will print 'Hello Bill'

связать

В отличие от стратегии «вызов и применение», стратегия «узких мест» не реализует возможность сразу. Учитывая все обстоятельства, он возвращает возможность, прикрепленную к элементу, который может быть выполнен позже.

Мы должны снова обновить модель, чтобы использовать метод узкой точки. Сначала мы привяжем возможность sayHello к объекту клиента и распределим ее по другой переменной (helloBill). Затем мы можем вызвать эту возможность, назвав ее так же, как и стандартную возможность.

let user = { name: 'Bill' };

function sayHello(greeting){
  console.log(`${greeting} ${this.name}`)
}

let helloBill = sayHello.bind(user);
helloBill('Hello'); // will print 'Hello Bill'

Для получения последних обновлений вы можете связаться с сайтом YourQuorum.