变量作用域

首先先了解变量作用域,一个变量作用域是程序源代码中定义这个变量的区域。分为全局变量和局部变量,全局变量拥有全局作用域,在JS代码中任何地方都有定义的。在函数内声明变量只能在函数内有定义。就是局部变量,作用域是局部性的。

有几个小知识点。
(1)局部变量的优先级高于同名的全局变量
var a = 'apple'//全局变量
function QQ(){
var a = 'apple2'// 同名的局部变量
return a;
}
console.log(QQ())// apple2


(2)因为函数是可以嵌套的,所以会出现几个局部变量作用域嵌套情况。
var a = 'apple'
function QQ(){
var a = 'apple2';
function WW(){
  var a = 'apple3' //因为嵌套作用域内的局部变量
  return a;        //返回当前作用于的值
}
  return a;
}
console.log(QQ()); //apple2


函数的作用域;
js中函数作用域指函数内声明的所有变量都可见的,这意味着变量声明之前就可以使用了,这个叫做声明提前;
var a = 1;
function f(){
console.log(a);//是‘undefined’
var a = 2;//变量在这里赋值,单变量在整个函数内是有定义的。
console.log(a);// 输出2
}

猜你喜欢

转载自liujun11.iteye.com/blog/2380061