函数
- 函数是一个可重用的代码块,用来完成某个特定功能。每当需要反复执行一段代码时,可以利用函数来避免重复书写相同代码。
- 函数包含着的代码只能在函数被调用时才会执行,就可以避免页面载入时执行该脚本
- 在JavaScript中,可以使用以下三种方法来定义一个函数
- 使用function语句定义函数
- 使用Function()构造函数来定义函数
- 在表达式中定义函数
Function构造函数定义函数
var 函数名 = new Function(“参数1”,”参数2”,”参数3”……”函数体”);
注意:
1. 在使用Function()构造函数的时候,第一个字母要大写
2. Function()构造函数只能在JavaScript 1.1或更高版本中使用
3. 每次调用构造函数时都会解析函数体,并且创建一个新的函数对象,效率非常底
function语句定义函数
function 函数名 (参数1,参数2……[形参]){ <语句块> return 返回值 }
function关键字:用于定义一个函数 函数名:函数名通常是一个合法的标识符,是唯一的,区分大小写的 参数:在函数里,可以有0个或者多个参数。如果有多个参数,参数与参数之间要用逗号隔开。无论函数是否有参数,小括号必需要有 函数体:用大括号括起来的代码块,即函数的主体 返回值:函数返回的值由关键字return完成,可选项
在表达式中直接定义函数
var 函数名 = function (参数1,参数2,…){函数体};
注意: 在表达式中定义函数的方法只能在JS1.2版本或以上版本中使用 函数名() 函数名/变量名
var rightKey=function(){ if(event.button==2){ alert("禁止使用鼠标右键"); } } window.onmousedown = rightKey;
函数的调用
1.直接调用
myFunction();或window.myFunction()
2.事件处理中调用
<div onclick="myFunction()"></div>
3.将函数的返回值赋给变量
var t = myfunction();
函数的参数
形參:定义函数时,函数名后面()中的参数;JavaScript中的函数允许给行参赋初始值 实参:调用函数时,传递的参数 参数的匹配: 默认情况下,形參和实参是一一对应的 但是当传递的参数个数与函数定义好的参数个数可以不匹配当不匹配时
- 如果传递的参数个数小于函数定义的参数个数,JavaScript会自动将多余的参数值设为undefined;
- 如果传递的参数个数大于函数定义的参数个数,那么多余传递的参数将会被忽略掉。
获取所有实参【arguments】
function Test(a,b){ alert(typeof(arguments)); // 获得类型 alert(arguments[1]); // 获取下标为1的参数值 alert(arguments.length); // 获取参数的长度 alert(arguments.callee); // 获取函数的所有内容 } Test("zhang","li");
函数的返回值
- return语句并不是必须的
- 默认情况下,函数的返回值为undefined
- 在使用 return 语句时,函数会停止执行,并返回指定的值,return后面的代码不再执行
什么情况下添加return:
如果函数中的变量要在函数外进行调用 函数体的结果需要在函数外进行使用
全局变量与局部变量
1 局部变量:“在函数内定义的变量”, 即在一个函数内部定义的变量,只在本函数范围内有效。
2 全局变量:“在函数外定义的变量”, 即从定义变量的位置到本源文件结束都有效
嵌套函数:在JS中,函数的定义中还可以再次定义新的函数
function say() { function add(x,y) { return (x+y); } alert(add(2,3)); } say();
内嵌函数add()只能在嵌套它的函数(say())中调用,而不能再外部调用。
条件函数
var b = false; if(b) { function ex1() { alert(1); } ex1(); } else { function ex2() { alert(0); } ex2(); }
输出0,将b的值改为TRUE,则输出1,不演示。条件函数的花括号不具有范围限制,即可以在花括号外访问函数。