The var keyword is scoped to the nearest function block and let is scoped to the nearest enclosing block, which can be smaller than a function block. If used outside any block then both are global.
Another point is that variables declared with let are not accessible before they are declared in their enclosing block.
They are very similar when used like this outside a function block.
let me = 'go';
globally scoped var i = 'able';
The global variables which are defined with let will not be added as properties on the global window object like those defined with var.