1、创建函数
在ECMAScript中函数有以下几种创建方式
n 第一种
function 函数名称(参数列表){
函数体;
}
n 第二种
var 函数名称=function(参数列表){
函数体;
}
n 第三种(了解)
Var 函数名称=new Function(参数列表,函数体);
以上操作,都可以创建函数,我们只要求掌握第一种与第二种,对于第三种大家了解就可以。
2、调用函数
函数可以通过其名字加上括号中的参数进行调用。
示例1
<scripttype="text/javascript">
//使用function 函数名称(参数列表 ){}方式来创建函数
function add(a, b) {
alert(a + b);
}
//调用函数
add(10, 20);
</script>
示例2
<scripttype="text/javascript">
//使用 var 函数名称=function(参数列表)来创建函数
var add = function(a, b) {
alert(a + b);
}
//函数调用
add(10, 20);
</script>
示例3
<scripttype="text/javascript">
var add = new Function("a","b", "alert(a+b)");
add(10, 20);
</script>
细节问题:
问题:如果我们在调用函数时,使用add(1,2,3,4)是否会出现问题哪?
如果是在java中我们这样调用一定会有问题的,但是对于javascript来说,是不会有问题的。简单的说,也就是 函数调用时传递的参数不一定要与函数声明时的参数个数一致 。
问题:如果调用时传递的参数与函数定义时参数个数不一致,那么我们在函数中如果获取多余的参数哪?
在javascript中有一个特殊的对象arguments,我们可以通过它来获取所有函数中的参数。
<scripttype="text/javascript">
//创建函数
function add(a, b) {
//在函数中如果要获取所有参数列表中的信息可以使用argument来操作
for(var i=0;i<arguments.length;i++){
alert(arguments[i]);
}
}
add(1,2,3,4);
</script>
3、函数参数与返回值
在java中我们定义一个方法,如果这个方法有返回值,我们必须做到以下两点:
1. 在方法声明时,必须声明其返回值类型,如果无返回值需要使用void。
2. 方法有返回值,我们在方法中需要使用return来返回结果。
那么我们在javascript中应该怎样处理一个函数的返回值哪?
直接使用return来返回结果,而不需要在方法上声明返回类型。
<scripttype="text/javascript">
//创建函数
function add(a, b) {
//返回a与b的和
return a+b;
}
//在调用函数时,我们就可以直接使用一个变量来接收函数的返回结果
var sum=add(1,2,3,4);
alert(sum)
</script>
4、函数的属性
name属性:返回紧跟在function关键字之后的函数名
length属性:返回函数预期传入的参数个数,即函数定义之中的参数个数
toString():返回函数的源码,函数内部注释一并返回。
5、函数的作用域
js有两种作用域:
全局作用域,变量在整个程序中一直存在,所有地方都可以读取;
函数作用域:变量只有在函数内部存在。
变量:
全局变量:在函数外部声明的变量就是全局变量,它可以在函数内部读取。
局部变量:在函数内部定义的变量,外包无法读取,称为“局部变量”。
注意:有一种在函数外定义,但是没有var 声明的变量,其实定义在window对象下的,可以作为全局变量使用,少用。
6、细节
Js的函数域其他数据类型(数值、字符串、布尔值)处于同等地位,可以使用其他数据类型的地方,就能使用函数,比如函数可以作为实参,返回值等。
7、js全局函数介绍
n 编码函数
n Js字符串解析函数
n 字符串与数字转换函数