全局变量:声明的变量,能够在任何地方使用,即为全局变量。
局部变量:在函数内部声明的变量,只能在当前函数内部使用。
块级 var a = 100; console.log(a);//100 console.log(b);//undefined var b = 66; console.log(c);//Cannot access 'c' before initialization,在初始化之前无法找到'c' let c = 11; console.log(d);//Cannot access 'd' before initialization const d = 22;
作用域(es6新增)
es6使用let,const关键字来实现块级作用域
使用let,const在块级作用域里面声明的变量,块级作用域外部无法使用。使用var声明的变量块级作用域可以使用。
区别:
var:可以跨块访问,不能跨函数访问,存在变量提升(无论在何处声明变量,都会在执行任何代码之前进行处理。)。
let:只能在其作用域内访问,不能跨块访问,不能跨函数访问。
const:定义常量,使用是需要赋值(初始化),不能修改。
同一作用域下,let,const声明的变量不能重复声明。
var a = 100;
console.log(a);//100
console.log(b);//undefined
var b = 66;
console.log(c);//Cannot access 'c' before initialization,在初始化之前无法找到'c'
let c = 11;
console.log(d);//Cannot access 'd' before initialization
const d = 22;