1.变量作用域: 变量再什么范围内是可用;
var 是JavaScript设计时的缺陷,
var在块级里面声明,但是在块外面还可以使用,影响非常不好;也就是说 var 并没有块级作用域
举个例子:if的块级 引起的问题
var func; if(true){ var name = 'why'; func = function(){ console.log(name); } } func(); 这中情况下,我们调用 func()方法,就会在控制台打印出 why, 但是,现在有一个问题, 因为我们是用var声明的name, 那么,也就意味着,name可能在被调用方法之前就会被修改, 这样,我们调用的func() 就获取不到想要的内容了
let 有块级作用域,只会在块中生效;
const 说白了就是声明了一个常量,声明之后,不可更改;
举个例子: const a = 1; a=2 这个就是错误的,因为a不可更改;
const name; 错误 ! 必须在声明时就给值