Каверзный вопрос при собеседовании JS разработчика

1 минута чтения

Проходя интервью в Мамба, мне задали интересный вопрос.
Есть JavaScript код который генерирует сервер. На сервере что-то внезапно сломалось и он начал отдавать скрипты с обрыванием текста (инициализируя SyntaxError).

Например:
var text = «simple text

Задача.
Не меняя серверный ответ «починить» строку, чтобы она правильно воспринималась интерпретатором JavaScript.

Решение:
Самое лучшее решение которое я нашел, оказалось в подстановке обратного слэша («») в конец строки. По правилам JavaScript, парсер принимает обратный слэш и экранирует следующий символ, в данном случае символ переноса строки («n» или «клавиша Enter»).
Т.о. финальный текст исходного кода должен стать, например, таким:
var text = «simple text
«;

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

Сравните сами:
Вариант с экранированием:
var multyText = «one text, two text, third text»;
Вариант с конкатенацией:
var multyText = «one text, » + «two text, » + «third text»;

Добавить комментарий