JavaScript函数及特殊点
函数是一组可以随时随地运行的语句。
函数的基本语法是这样的:
function functionName(arg0, arg1, ... argN) {
statements
}
函数如果有返回值,使用 return 运算符后跟要返回的值即可。函数在执行过 return 语句后立即停止代码。
例如:
function add(a,b)
{
return a + b;
}
//调用add()
alert(add(1,2)); // 结果 3
匿名函数:
我们也可以通过指派一个变量名给匿名函数的方式来定义它。
var add = function(a,b)
{
return a + b;
}
//调用add()
alert(add(1,2)); // 结果 3
这个代码和前一个例子做了同样的事情。也许语法看起来比较奇怪,但它应该更能让你感觉到函数是一个对象,而且我们只是为这个对象指派了一个名称。
注意:和C语言、Visual Basic语言等函数定义不可以嵌套,调用可以嵌套不同,JavaScript函数定义和调用都可以嵌套,这一点和python函数一样。
JavaScript函数嵌套的例子:
f()函数嵌套 了g()函数
var x = "global";
function f() {
var x = "local";
function g() { alert(x); }
g();
}
//调用f()
f(); //显示 "local"
JavaScript变量的作用域
全局变量:函数外声明的变量,称为全部变量。
局部变量:函数内部使用var声明的变量,称为局部变量。
函数外部不能访问函数内部局部变量(私有属性)。
全局变量和局部变量可以使用相同的名称,但它们是不同的变量,参见下例:
<!DOCTYPE html>
<html>
<head>
<title>变量的作用域例子</title>
</head>
<body>
<script>
var a=10; //声明全局变量
var b=a+5; //声明全局变量
function showVars()
{
var a=20; //声明局部变量
var b=a+5; //声明局部变量
return "函数内部的a=" + a + "\n" + "函数内部的b=" +b;
}
var str=showVars();
alert(str+ "\n"+"函数外部的a=" + a + "\n" + "函数外部的b=" +b)
</script>
</body>
</html>
将上述代码保存为html文件,双击之,运行结果:
函数内部的a=20
函数内部的b=25
函数外部的a=10
函数外部的b=15