• var会直接在栈里分配一个内存空间,等实际执行到语句时,再保存变量。如果遇到引用类型的变量,会去堆里开辟一个空间来保存对象,然后在栈里存储指向对象的指针。
    • let不会直接去栈里分配内存空间,而是做一个预检查,如果有同名变量就会报错。
    • const和let一样在分配内容空间之前会做检查。