到了相对复杂的一章,函数。
什么是函数
函数是由事件驱动的或者当它被调用时执行的可重复使用的代码块。
---http://www.w3school.com.cn/js/js_functions.asp
在大型项目中,有些代码块是需要反复调用的,如果每次都去敲这段代码,会使工作效率显著降低,因此通过把代码块封装在函数中,每次使用时直接调用函数,会让工作变得异常简单。
语法
函数由三大部分组成
- 关键词 function
- 函数名称(参数,调用函数时向其传递的值)
- 要执行的代码块,用花括号包围
function functionname()
{
这里是要执行的代码
}
返回语句:有时候希望函数将值返回调用它的地方,可以通过return 语句实现。使用 return 语句时,函数会停止执行,并返回指定的值。
function sayHello() {
var message = "Hello!";
return message; // 返回message
}
注意事项:
(1)function必需小写,因为JS对大小写敏感
(2)函数名称小括号里的参数可以没有,这时直接把小括号留空;如果有多个参数,用逗号隔开
使用返回值
返回语句会给出返回值,返回值作用如下:
函数的返回值可以存储在变量中或在整个程序期间作为参数使用
例子:
function add(x, y) {
return x + y;
}
var sum = add(2, 5); // 调用 add 函数并将返回值存储在 sum 变量中
作用域
全局作用域
在所有函数之外定义变量,视为全局作用域的一部分,该变量可以在程序任意位置被访问,即全局可用。
函数作用域
如果变量定义在函数内部,那么它在函数内任意位置可以被访问,包括该函数内部的其他函数。
例子
下面的例子中,a变量处于全局作用域,b, c和d变量处于函数作用域。那么下列代码在何处输出c的值不会产生错误呢?答案是function y() 和 function z()任意位置。因为后者属于前者的内部函数。
var a = 1;
function x() {
var b = 2;
function y() {
var c = 3;
function z() {
var d = 4;
}
z();
}
y();
}
x();
函数表达式
当将函数赋值给变量时,函数可以有名称,也可以是匿名的。 调用时直接使用变量名称代替表达式中的函数。我们甚至可以内嵌地将函数传入另一个函数中。这种模式在 JavaScript 中经常用到,有助于简化代码。
匿名函数表达式
var doSomething = function(y) {
return y + 1;
}
命名函数表达式
var doSomething = function addOne(y) {
return y + 1;
}
对于两种表达式都可以这样调用函数:
doSomething(5);
返回值
6
网友评论