局部变量:函数体内定义的变量就是局部变量
全局变量: 函数体外定义的变量就是全局变量,当然如果是函数内部未使用var声明的变量也是全局变量
块级变量: 变量只能在声明的区域或者函数内部使用
Tips:
var声明的变量,如果全局变量和局部变量同名时,则会造成变量提升,函数内部如果在同名变量未声明之前使用了这个变量,而后面又声明这个跟全局变量一样的变量,则这个变量会提升到使用之前的位置被声明,后面变成了赋值
var qj = '刘德华'
function face () {
console.log(qj) => undefined
var qj = '马德华'
console.log(qj) => 马德华
}
===> 其实变量提升,解析为:
function face () {
var qj
console.log(qj) => 变量从后面提升到使用之前被声明,但是没有任何值,所以是undefined
qj = '马德华'
console.log(qj) => 变量被赋值,所以是马德华
}