Руководство Бабеля по ES6 гласит: letэто новый var. Очевидно, единственное отличие состоит в том, что varобласть видимости отображается в текущей функции , а letобласть видимости - в текущий блок . В этом ответе есть несколько хороших примеров . Я не вижу никакой причины для использования varв коде...