多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
# 1、定义与调用 定义语法: ``` function 函数名(参数列表) { //函数体 //return xxx; } ``` /**************** 使用function声明函数,并调用 *******************/ ``` //定义函数,参数为一个大于0 的数字n,要求返回1+2+3+....+n 的和 function sum(n){ //定义一个和 var s = 0; //默认是0 for(var i=1; i<=n; i++){ s = s + i; // s += i; } //循环结束之后,就得到一个和 return s; } //调用函数 console.log(sum(100)); ``` 这种方式定义的函数可以先调用,后定义,也就是函数预加载。 # 2、函数表达式 函数也是值。 ![](https://img.kancloud.cn/82/7f/827fa27031fd85676e455f90da78eda4_933x479.png) 既然函数可以看做是变量,那么就可以像定义变量一样来定义函数,这就是函数表达式的形式: ``` //定义一个变量,值是一个函数类型。这种方式定义函数也是可以的 var b = function (x){ console.log('今天是周' + x); }; b('三'); //调用函数 ``` # 3、函数预加载 函数预加载指的是哪种方式定义的函数呢? 函数预加载指定是在同一个script代码段中,由“function xxx(){}”这种方式定义的函数,可以先调用函数,再声明函数。 ![](https://img.kancloud.cn/ca/e2/cae211a9f2042cc834091086164bccee_921x263.png) **注意不要在非函数的代码块中声明函数。** # 4、立即调用模式 ![](https://img.kancloud.cn/12/58/1258ace0346a096566b3e06695652c1e_901x376.png) # 5、参数 * 形参:定义函数时,约定的参数 * 实参:调用函数时,传递给函数的实际值。 * JS函数,参数传递非常灵活,定义的形参和实际传入的实参个数可以不一样。 ![](https://img.kancloud.cn/f6/1f/f61f2899e6ac760f068b3c2091b4b97d_711x186.png) ES5中,函数的参数不可以用默认值。ES6中,函数的参数可以有默认值的。目前IE11只支持部分ES6的内容。 那么在ES5中,如何实现形参有默认值的写法呢? ![](https://img.kancloud.cn/d4/ac/d4ac95ab103e359cd5f1db21c2bde584_747x256.png)