Great post. Mutability in JS makes things very complicated (I recently had a hair pulling bug that modified properties on an unintended object). You know you can also create a constant object with Object.seal(obj) ? Once you pass your object to the seal method, you won't no longer be able to modify its properties.
I have a couple of javascript posts on promises as well...check them out and follow me @codero
RE: JavaScript - var, let, const