Автоматическая вставка точки с запятой в Javascript для операторов do-while
Начиная с ES6, новый регистр был добавлен для правила 1 автоматической вставки точки с запятой:
Предыдущий токен), а вставленная точка с запятой затем будет анализироваться как завершающая точка с запятой оператора do-while (13.7.2).
Это позволяет избежать завершения строки и написать уродливый код, например:
do {} while (false) var a = 42
В чем причина этого правила? Какой-нибудь полезный вариант использования?
1 ответ
Я почти уверен, что "case", добавленный в ES2015, предназначен только для стандартизации правил, которые браузеры уже реализовали, чтобы быть совместимыми с ужасно написанными (или странно миниатюрными) скриптами. Это не совсем новая функция, скорее, это была корректировка спецификации в соответствии с тем, что браузеры уже делали.
Например, ваш фрагмент кода работает в IE11, выпущенном в 2013 году:
do {} while (false) var a = 42;
console.log('no parse errors');