JS函数变量作用域

Posted Yokemadman

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JS函数变量作用域相关的知识,希望对你有一定的参考价值。

函数参数
函数的()中指定一个或多个形参(形式参数),多个形参之间用,号隔开,声明形参相当于在函数内部声明了对应的变量,但不赋值。在调用时在()中指定实参
?调用时解析器不会检查实参类型、数量,实参可以是任意的数据类型。
函数返回值
使用return来设置函数的返回值,作为函数的执行结果来返回
return后可以跟任意类型的值
语法:return 值

function sum(a,b,c){
 var d = a + b + c;
 return d;
}
var result = sum(1,2,3);

立即执行函数

(function(a,b){
  console.log("a = "+a);
  console.log("b = "+b)
}(xxx,xxx));

方法
函数也可以称为对象的属性,如果一个函数作为一个对象的属性保存,那么这个函数称为这个对象的方法
枚举对象的属性
使用for...in语句,对象中有几个属性,循环就执行几次,每次执行,都会将对象中的一个属性的名字赋值给变量
语法:for(var 变量 in 对象){
}

作用域:变量的作用的范围。
全局作用域

  • 直接写在<script>标签的JS代码,都在全局作用域
    --在打开是创建,在关闭时销毁
  • 全局作用域有一个对象Window,可以直接使用
  • 全局作用域,创建的变量都会作为Window对象的属性保存,创建的函数作为Window的方法保存。

变量声明提前
使用var关键字声明的变量,会在所有的代码执行之前被声明(但不会赋值),如果不适用var关键字,则变量不会被声明提前
函数声明提前
使用函数声明形式创建的函数function函数(){},会在所有的代码执行之前被创建

//会被提前
function fun(){
  console.log("xxx");
}

//不会被提前
var fun2 =  function(){

}

以上是关于JS函数变量作用域的主要内容,如果未能解决你的问题,请参考以下文章

JS 作用域及作用域链

js中变量的作用域

JS 作用域及作用域链

JavaScript 作用域 与 作用域链

JS 变量作用域

js改变作用域链