定义函数的三种方式:javascript
function fnName(args){}java
var fnName = function(args){}函数
var fnName = new Funtion(args,函数体);编码
1. arguments 对象spa
(1) 模拟函数重载code
function add(){ if(arguments.length==2){ return arguments[0] + arguments[1]; }else if(arguments.length==3){ return arguments[0] + arguments[1] + arguments[2]; } } alert(add(2,3)); //输出:5 alert(add(2,3,4)); //输出:9
二、变量做用域对象
JS中的做用域有两种:全局域和函数域,分别对应着全局变量和局部变量。注:JS中不存在块级做用域,即{}。在某个代码块中定义的变量(如if或for语句),它在代码块外是可见的。ip
1)定义局部变量时不使用var关键字:该局部变量被定义为全局变量2)当全局变量与局部变量同名时,在函数域中只能访问局部变量作用域
三、特殊函数回调函数
1)匿名函数
能够将匿名函数做为参数传递给其余函数。这样,接收方函数就能利用所传递的函数来完成某些事情 —> 匿名回调函数
能够定义某个匿名函数来执行某些一次性任务 –> 自调函数
2)回调函数
function two(a, b, c, callback){ var i, arr = []; for(int i = 0, i < 3, i ++){ arr[i] = callback(arguments[i] * 2); } return arr; }
3.自调函数
( function(){ alert("javascript"); } )(); ------------------- ( function(name){ alert(name + "i love you!"); } )("xt");
4.预约义全局函数
encodeURI/decodeURI : 编码解码
encodeURICompent/decodeURICompent : 编码解码
。。。。。