js函数应用
【函数的声明及调用】:
1.函数声明:
function 函数名(参数1,参数2,·····){
//函数体
return 结果;
>>函数调用的格式:
函数名(参数1的值,参数2的值,·····)
事件调用
}
2.函数声明的几点强调:
①.函数名的声明,必须符合驼峰法则(首字母小写,之后的每个单词首字母大写);
②.参数列表,可以有参可以无参,分别为有参函数,无参函数;
③.声明函数时的参数列表叫形参列表(变量的名);调用函数是的参数列表叫实参列表(变量的值);
函数中实际有效的参数取决于实参的赋值,未被赋值的形参,将为undefined;
④函数如果需要返回值,可用return返回结果;
调用函数时,使用var 变量名=函数名();的方式,接受返回结果;
如果函数没有返回值,则接受的结果为undefined;
⑤函数的作用域:
在函数中,使用var生命的变量,默认为函数的局部变量,只在函数中起作用;
不用var声明的,则为全局变量;
函数中的全局变量,必须在函数调用后才能使用;
函数的形参列表,为函数的局部变量,只在函数内部使用;
⑥函数声明与函数调用没有先后关系,调用语句可以写在声明之前。
【匿名函数的声明及调用】
1.声明一个匿名函数,直接赋给某个事件;
window.onload=function(){}
2.使用函数表达式,声明匿名函数;
声明函数表达式:var func3=function(){}
调用函数表达式:func3();
>>使用匿名函数表达式,则调用语句,必须在声明语句之后,否则报错(对比常规函数声明与调用区别)
3.使用自执行函数声明(重要):
!function(参数1){}(参数1的值);//使用任意运算符开头,一般使用!
(function(){}());//使用()将匿名函数级之后的括号包裹;
(function(){})();//使用()只包裹匿名函数表达式;
三种写法的特点:
1.开头加!,结尾加();不容易乱,推荐使用;
2.可以表明匿名函数与之后的()为一个整体,推荐使用;
3.无法表明函数与之后的()为一个整体,不推荐使用;
【Arguments对象】
1.作用:用于保存调用函数时,所赋值的实参列表。
>>当我们调用函数,并使用实参赋值时,实际上参数已经保存到arguments数组中,即使没有形参也可以使用arguments[n]的形式调用参数。
2.arguments数组的个数取决于实参,与形参无关,当第n个位置的形参,实参,arguments都存在时,形参与arguements是同步的(即在函数中修改其中一个值,另一个会同步变化)。
3.arguments.callee是argument的重要属性,用于返回arguements所在函数的引用;
arguement.callee()可以调用自身函数执行;
在函数内部调用函数自身的写法,被称为递归,所以arguments.callee()是递归调用时常用的方式。
【js中代码执行顺序】
js中代码运行,会先进行检查,装载,及声明变量,函数等操作;
然后再进行执行阶段(变量的赋值属于执行阶段);
函数的声明属于检查装载阶段,函数的调用属于执行阶段,函数声明与函数调用没有先后关系, 调用语句可以写在声明之前。
举例说明:
console.log(num);
var num=10;
funN();
function funcN(){}
所以,上述代码,执行流程:
-----检查装载阶段-----
var num; //变量声明
function funcN() //声明函数
-----执行阶段-----
console.log(num);
num=10;
funN(); //执行函数中{}部分