Если ты начинающий Front-End программист, то возможно этот пост будет полезен. В данном случае речь пойдет о javascript.

Собесдования у меня были разные, но хотелось бы отметить, чем больше у тебя опыта, тем приятней ходить на собеседования. Даже если в итоге выбор останавливали на другом кандидате, я узнавала новые веяния в своей профессиональной области, книги которые стоит почитать, о преспективных фреймворках, удобных IDE  да и просто приятно поговорить с умными людьми 🙂

Начнем с простого:

 

from, From  — это одинаковые переменные или разные? Разные, javascript является регистрозависимым языком.
Какие переменные можно использовать:

666driver, ItemLast, клиент, $apple, new_list, my-cart, _ , BOOM, class

Нельзя:
666driver — начинается с цифры
клиент — в принципе допустимо работать будет, но не используется
my-cart -нельзя использовать дефис, можно только символы $ и _
class — зарезервированное имя
Какой тип переменной а и b, с и d, если

var b = new String(строка);

var d = new Number(4);

b,d — object;

с — number;

Что выведет alert(9/0); Infinity, да-да в javascript можно делить на 0!
Что выведет alert(0/0); NaN
Что выведет alert(0.2+0.1) и почему? 0.3000000000000004
Верны ли утверждения:
1. undefined == undefined
2. NaN ==NaN
2. false
Как определить что переменная содержит NaN? isNaN, или
var n = 0/0;
if (n !== n) если условие верно то это NaN
Как преобразовать строку в число?

var s = ‘0.1’;

parseInt(s) или +s
Какой будет результат:
1. +’ -5′;
2. +’ \n5 \n’;
3. +’ ‘;
4. +’1 2′;
5. ‘l’*2
6. ‘1’+2
7. 6/’2′
1. -12
2. 5, перевод строки \n является пробельным символом
3. 0, пустая строка становится нулем
4. NaN, пробел посередине числа
5. Арифметическое действие со строкой — NaN.
Так, например, можно проверить, что пользователь ввел число, умножаем введенное на 1 — если NaN — значит не число.
6. 12 — сложение строк, число преобразуется в строку
7. 3, строка преобразуется в число 🙂
Результат операций:
1. —3
2. -(-3)
1. Это инкремент 2
2. Инвертирование 3
Есть две переменные, как результат получить в виде числа
var a = ‘500’;
var b = 100;
new Number(a)+ new Number(b) или для целых чисел parseInt(a)+parseInt(b)=600
var a = 1;
var b = 2;
var с = 3-(a = b+1)
Значение a и с
a=3, c=0 Тут нужно знать о приоритетах операндов.
var a, b = 2;
var с = a+++—b;
Чему равно с?
3, тут два инкремента (a++)+(—b), значение a измениться после присваивания, а b перед, то есть получается 2+1
var a, b = 2;
var с = a—b;
Чему равно с?
1, a-(—b)
var n=2
n+=5
7, так как
n+=5 эквивалентно n=n+5;
Чем отличаются:
=
==
===
присваивание
сравнение на равенство
строгое сравнение, учитывается тип данных
Разельтат:
‘1’==1
‘1’===1
true
false (причину см. выше)
Разультат:
‘а’>’Я’
Чем дальше стоит буква тем больше ее вес, Большие буквы идут первыми. Если строка состоит из нескольких символов, то сперва сравнивается первы, если равны, то второй и так далее.
Для справки Таблица символов юникода
‘Привет’ > ‘Приве’ true
Любой символ больше чем ‘ничего’.
1. ‘2’ > 1
2. ’01’==1
3. false == 0
4. false === 0
5. ‘2’>’14’
6. null == undefined
7. null == null
8. null > 0
9. null == 0
10. null>=0
1. true, строка приводится в число
2. true, строка приводится в число
3. true, булева переменная приводится в число
4. false, строгое сравнение, тип донных разный
5. true, сравниваются строки
6. true, приводится в число
7. true
8. false, null приводится в число 0, 0>0
9. false, просто нужно знать что null это не 0
10. true, получается фактически 0<=0
Какое написание верно:
for(i=0;i<0;i++)
for(;i<0;i++)
for(;i<0;)
for(;;)
Все допустимо, единственное последнее это бесконечный цикл
i=0; while(i<3) {alert(i); i++}
i=0; while(i<3) {alert(i); ++i}
Что выведет alert, И какое значение i после выполнения цикла
В обеих случаех alert выведет 2, в первом случае i=2, во втором i=3

Назовите отличия javascript от других языков программирования.
Вопрос конечно пространный, но ваши рассуждения, позволят потенциальному работодателю понять насколько ‘вы в теме’.
Скорее всего то что я напишу ниже далеко полных список, буду рада дополнениям.

  • В javascript есть неявное преобразование типов.
  • Нет типа данных ‘символ’
  • Область видимости