关于什么是函数都不介绍了,想必学过C语言的人都知道啥是函数把,下面只是讲讲JS中的函数,都是一些基础内容,备忘用的。
一、函数定义
function func_name(arg1, arg2, ..., argN) {
//代码块
}
其实JS函数的特殊之处在于不必指定传递给函数的参数个数,传递的参数个数也不一定要跟定义的时候一样。当调用函数的时候,系统会给函数传递一个arguments对象(其行为更像数组),当我们不知道传递参数的个数时,这个对象非常有用,下面是一个例子
function f() {
var arg = arguments;
document.writeln("共有" + arg.length + "个参数");
//依次打印出每个参数
for(var i = 0; i < arg.length; i++) {
document.writeln(arg[i]);
}
}
f("hello", "world");
//依次打印出
共有2个参数
hello
world
二、函数与变量作用域
JS与PHP不同,JS的函数内部可以直接访问外部的变量,如果在函数内部声明了一个变量,但是没有用var声明,则声明的是一个全局变量,在函数外部依然可以使用。
三、函数的返回值
可以在函数内部通过return关键字返回一个值,return后,函数便执行完毕,即使后面还有代码。这与大多数的其它语言类似,没什么好说的,需要注意的是,如果函数没有显式的使用return语句,则函数默认返回undefined。
四、函数直接量
在JS中,函数是真正的一种变量,可以被赋值,这称为函数直接量(或者匿名函数),下面是一个例子:
var f = function() {
alert("Hello World!");
}
f(); //调用函数,函数会弹出Hello World!
函数直接量在jQuery应用广泛,在面向对象的JS中也应用很多,因此,应该学习其用法。
另外,函数直接量也可以赋值,如赋值给另一个变量,而且如果你直接打印函数名,则会打印出函数的定义。