一、函数的概念
- 函数由事件驱动或者当它被调用时,可重复执行的代码块。减少代码冗余,增强了灵活性,增强可维护性,可扩展性。
- JavaScript为编译性语言,代码会一边解释编译,一边执行。
在当前script标签中的函数一旦创建成功,后面所有的script标签都可以使用该函数;但是当前script标签前面的script标签不能执行该函数,因为该函数还没有放在堆中。
当执行到当前script标签时,预先将当前script标签中的所有命名函数先存储在堆中,并且在栈中给它定义。
二、函数的定义
命名函数 | function 函数名() { } |
---|---|
匿名函数 | 1.变量匿名函数var fn=function( ) { } |
2.对象方法定义var obj={fn: function( ){ } } | |
3.自执行函数(function( ){ }) ( )只能执行一次,无法再次使用 | |
命名函数可以在函数定义之前和之后执行,但是匿名函数只能在函数定义后执行 | |
构造函数 | var fn=new Function(“参数1”,“参数2”,…“函数内容”); |
构造函数所有内容都必须是字符串,缺点运行速度慢,效率低,因为要将所有的字符转化为代码 | |
函数的执行 | 1. 函数名();调用执行函数 |
2. btn.onclick-function();事件驱动执行函数 |
三、函数的参数
- 写在函数名后面括号里的变量叫参数
- 参数名起名规则和变量名类似,但是有时候可以使用下划线来起头
- 参数分为形参和实参 在创建函数,写在小括号里的变量称为形参;在调用函数是,写在小括号里具体的值称为实参,如果有多个参数时,就需要使用逗号分隔
- n,m这个形参这个变量的范围是仅在当前函数语句块中,在该函数外不要调用该函数的参数
- 一般情况下,形参和实参是一一对应的,如果形参的个数大于实参,多余的形参默认取值为undefined,如果实参多余形参,实参无效
四、函数的return
return | 用法 |
---|---|
用在函数内部 1.结束函数执行,后续的代码就不再执行了 | |
2.作为函数的返回值或者函数执行后的一个执行结果 | |
3.如果一个函数没有return或者return后面没有值,默认返回undefined |
五、arguments
arguments | 定义 |
---|---|
JavaScript 函数有个内置的对象 arguments 对象 | |
argument 对象包含了函数调用的参数数组 | |
参数的个数不确定 时使用arguments |
案列:
//任意个数字的和
function doAdd() {
//arguments[index] index称为索引,
//索引是从0开始的 0表示的第一个值 1表示的是第二个值
//console.log(arguments[0], arguments[1], arguments[2]);
//console.log(arguments.length);//表示的是实参的个数
var sum = 0;
for (var i = 0; i < arguments.length; i++) {
sum += arguments[i];
}
document.write(sum);
}
doAdd(11, 22, 33, 44, 55, 66, 100);