1、 var str = 123; console.log(window.str);//123,属于顶层对象window const str = 234; console.log(window.str);//报错,不属于顶层对象window,属于全局对象,在es6中,顶层对象对全局对象脱钩(let,const,class申明的变量),但也做了兼融(var, function申明的变量) 2、 if(true) { var str = 345; } console.log(str);//345 if(true) { const str3 = 789; } console.log(str3);//报错,const申明变量具有块级作用域 3、const 常量不存在变量提升 4、const的本质就是不能修改指向变量的地址,基本数据类型,不能被修改,引用数据类型是可以修改(修改地址指向的内容) const obj = { name:'zhangsan', age:23 } obj.name = 'lisi'; console.log(obj.name);//lisi