Деструктуризация строки JS: остаточный параметр возвращает противоречивые данные

Рассмотрим следующие примеры

Старый проект:

      const [x, ...y] = "text";
console.log(x) // "t"
console.log(y) // "ext"

Новый проект на базе CRA:

      const [x, ...y] = "text";
console.log(x) // "t"
console.log(y) // ["e", "x", "t"]

я не знаю почему yвозвращает строку ( "ext") для старого проекта, где это массив символов ( ["e", "x", "t"]) для нового проекта. Это как-то связано с разными версиями JS?

Примечание. Оба результата были извлечены после запуска сервера разработки webpack.

1 ответ

на веб- сайте babel вы можете видеть, что ваш код основан на свободном преобразовании es2015 в этот код, поэтому вывод этого кода совпадает с вашим старым проектом.

      "use strict";

var _text = "text",
    x = _text[0],
    y = _text.slice(1);

console.log(x); // "t"

console.log(y); // "ext"
Другие вопросы по тегам