Therefore, I am charged to think about each variable declaration as either a static const or a mutable let
React and Flux: Migrating to ES6 with Babel and ESLint
Aaron Tribou

ES2015 doesn’t totally invalidate the use of var. There are still times when you legitimately may not want block scoping.

An example is with a try..catch block. If only using let, you would have to declare a variable before the try block if you wanted to use it after. Well, javascript has this cool keyword, var, that makes it so you don’t have to do that.

With the addition of const and let, I now see var’s non-block-scoping as a feature, not a bug.

So I think its fine to recognize that javascript has (1) a static const, (2) a mutable, block-scoped, let, and (3) a mutable, function-scoped, var.