Если я попробую выводить babel, я могу назначить новое значение для x, и оно просто работает.Причина этого заключается в том, что выводимый код представляет собой ECMAScript 5 и не имеет понятия consts.Вы можете попробовать это, изменив const на var в примере 'JavaScript Demo: Statement - Const' на MDN .
Таким образом, babel скомпилирует (или "перенесет") его какприсваиваемая переменная, потому что другого пути нет.Но в процессе этого он проверяет ваш исходный код, чтобы увидеть, если вы не делаете присваивание x, и выдает ошибку, если вы делаете.
Babel проверяет, используете ли вы его как константу в процессе компиляции, но в конечном коде х, являющийся константой, больше не применяется, так что вы можете легко нарушить это, изменив выведенный код.
Для сравнения, то же самое касается любого компилятора.Если вы возьмете шестнадцатеричный редактор и измените исполняемый файл, вы также можете нарушить все, что компилятор делал при создании исполняемого файла.Фактически, это верно для вывода каждой программы, если вы измените ее после завершения программы (представьте себе изображения, документы, ...)