以下为本人学习js中总结的概念和技术,有错请欢迎指正
首先,我们来确定一下什么是函数?函数的概念是什么?
函数就一个代码块,在函数里面封装了可以实现某个功能的模块,在需要的时候,可以直接执行,也可以被行为调用。
那么为什么要封装成函数,意义在哪呢?
一个被封装好的函数可以无限次的使用,也可以选择使用,而且不需要再次实现内部的细节,这无疑在开发的时候给我们节省了很多的时间,也减少的了冗余代码。
- 选择使用
- 重复使用
- 忽略细节
函数如此便利,那么函数又是如何去创建?
- 声明式
function fn () {}这就是一个完整的函数声明,function为函数声明的关键字,这个不用理解,fn是函数名,()放置参数,{}被封装的函数体
- 赋值式
var s = function () {} 直接省去了变量名
函数的调用:
- 直接执行
fn(); ---->fn为函数名(注意:可以先理解一下fn()()(),多个括号表达的什么意思)
2.事件调用---->fn为函数名
var box.onclick = fn;
var box.onclick = function(){}
var box.onclick = function(){fn();}
函数的参数:
函数的参数又分为两种,实参和形参。
- 形参:形参是指函数在定义的时候的参数,如function fn(a,b,c) {}
- 实参: 实参是指函数在调用的时候的参数,如fn(1,2,3);
那么如果出现了定义的形参和传入的实参个数出现出入,那么实参和形参又是怎么对应的?这又要分成三种情况
- 实参个数大于形参个数,取实参与实参的对于部分,多余的实参暂且不管,下面会提到一个arguments的概念
- 实参个数等于形象个数,一一对应
- 实参个数小于形参个数,取对于的实参部分
在这补充一个arguments的知识点
上面提到了当时实参个数大于形参的时候,多余的实参怎么处理?其实函数传入的所有的实参都被传入了arguments对象中,当实参的个数多与形参的时候,如果我们想找到之前被传入的多余的部分,可与去arguments中去找。
更新中...