---函数---
说明:
函数就是可以作为一个逻辑单元对待的一组JavaScript 代码,使用函数可以使代码更为简洁,提高重要性,如果一段具有特殊功能的程序代码需要在程序中多次使用,就可以把它定义为函数,然后在需要这个功能的地方调用它,这样就不必多次重写这段代码。
1.函数的定义和调用
1.函数的调用
使用function语句来定义一个函数,这种形式是由关键字function,函数名加一组参数以及置于大括号中需要执行的一段代码构成。
语法:
<script type="text/javascript">
function 函数名([参数1,参数2....]){
语句
return 返回值
}
</script>
参数说明:
- 函数名:必选,用于指定函数名,在同一个页面中,函数名必须是唯一的。并且需要区分大小写。
- 参数:可选,用于指定参数列表,当使用多个参数的时候,之间要用逗号把隔开。
- 语句:必选,是函数体,用于实现函数功能的语句。
- 返回值:可选,用于返回函数的值,返回值可以是任意表达式,变量或者常量。
示列:
<script type="text/javascript">
function hell(price,number){
var index=price+number
return index;
}
</script>
注意:在一个页面中不能同时定义两个相同的函数名,定义了两个相同的函数名,第二个会覆盖掉第一个。因此在同一个页面中定义的函数名必须是唯一的。(个人感觉函数有栈的特性,第一个函数被压入栈中,接着同名的函数接着被压入栈中,但是调用的时候最后进去的那个所以会被覆盖。后进先出)
2.函数的调用
函数定义后并不会自动执行,要执行一个函数需要在特定的位置调用函数。调用函数的过程就像启动机器一样。机器本身是不会自动工作的,只有按下开关才会启动机器。它才会执行相应的操作。
语法:
<script type="text/javascript">
函数名(传递给函数的参数1,传递给函数的参数2)
</script>
示列:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<script type="text/javascript">
function index(){
document.write('<img src="lll.jpg">')
}
</script>
</head>
<body>
<script type="text/javascript">
index()
</script>
</body>
</html>
说明:函数的定义语句通常是放在HTML 文档中的<head>段中,而函数的调用语句则是放在HTML文件中的任何位置。
1.1.在事件中调用函数
示列
<head>
<meta charset="UTF-8">
<title>Title</title>
<script type="text/javascript">
function index(){
alert('我喜欢python')
}
</script>
</head>
<body>
<form action="" method="post" name="fline">
<input type="button" value="登录" onclick="index()">
</form>
1.2通过链接调用函数
<head>
<meta charset="UTF-8">
<title>Title</title>
<script type="text/javascript">
function index(){
alert('我喜欢python')
}
</script>
</head>
<body>
<a href="javascript:index()">单击连接</a>
2.函数的参数
在定义函数时候,将指定的参数称为形参,而将调用函数实际传递的值为实参,如果把函数比喻为一台生产的机器,那么运输原材料的通道就可以看成形参,而实际运输的原材料就看成是实参。
语法:
<script type="text/javascript">
function index(形参1,形参2....){
函数体
}
index(实参1,实参2)
</script>
3.函数的返回值
说明:对于函数的调用,即可以通过参数向函数调用参数,也可以从函数中获得数据,也就是说函数可以返回值。使用return 语句返回函数的值。
语法:
<script type="text/javascript">
return 表达式
</script>
<script type="text/javascript">
function index(x,y){
var z=x*y
return z
}
alert('结果为:'+index(10,20))
</script>
4.函数的镶嵌
说明:
函数的镶嵌是指在函数内部定义其他的函数,例如:在函数内部镶嵌定义另外一个函数
例如:
<script type="text/javascript">
function index(){
function index2(x,y){
alert(x*y)
}index2(3,4)
}
index()
</script>
<script type="text/javascript">
function index(){
alert('我喜欢python')
}
function index2(){
index()
}
index2()
</script>
总结:
以上是函数的镶嵌和在一个函数中调用另外一个函数。
5.递归函数
说明:
所谓递归函数就是函数在自身的函数体内调用自身,使用递归函数时一定要严谨,否则会进入死循环。并且递归函数只能在特定的情况下使用,比如处理阶乘问题。
<script type="text/javascript">
function index(sum){
if(sum<=1){
return 1 // 停止条件
}else{
return index(sum-1)*sum
}
}alert('结果为:'+index(4))
</script>
在定义递归函数时候有两个必要的条件
- 包括一个结束的递归条件
- 包括一个递归调用语句
6.变量的作用域
说明:
变量的作用域是指变量在程序中的有效范围,即在有效范围内可以使用该变量,变量的作用取决于该变量是哪一种变量,变量根据作用域的不用可以分为两种,一种为全局变量,一种为局部变量,全局变量是定义在所函数之外的变量,作用范围是该变量定义之后所有代码。局部变量是定义在函数体内的变量,只有在该函数中,且在该变量定义后的代码中,才可以使用这个变量。函数的参数也是局部性的,只在函数的内部起作用,在函数内部如果不使用var关键字将定义的变量为全局变量。
示列:
<script type="text/javascript">
var a='我是全局变量'
function f(){
var b='我是局部变量'
document.write(a+'<br>')
document.write(b)
}
f()
document.write(b) //我访问不到b这个局部变量
</script>
7.内置函数
一些主要的内置函数
函数 | 说明 |
---|---|
parseInt() | 将字符转换为整型 |
parseFloat() | 将字符转换为浮点数shu |
isNaN() | 判断一个数值是否为NaN |
ifFiniter() | 判断一个数值是否有限 |
eval() | 求字符串中表达式的值 |
encodeURI | 将URI字符集进行编码 |
decodeURI | 将编码的URI字符串进行解码 |
1.1数值处理函数
parselnt(string,[n])函数
主要将首位为数字的字符串转换为数字,如果不是以数字开头将返回NaN
- string:需要转换的字符串
- n:将指定数据是几进制的数据
parseFloat(string)函数
主要将首位为数字的字符串转换为浮点型,如果不是以数字开头将返回NaN
- string:需要转换为浮点数的值
isNan()函数
该函数主要检查某个值是否为NaN
isNaN(num)
- num:为需要验证的数字
说明:
如果参数为NaN则返回True ,如果参数不为NaN则返回 Flase
inFinite(num)函数
- num:需要验证的数字
说明:
如果参数为有限数字,则返回True如果参数是空或者无穷大,则返回Flase
1.2字符串处理函数
eval(string)函数
该函数的功能是计算字符串表达式的值,并执行其中JavaScript代码
- string:需要计算的字符串,其中含有要计算的表达式或者要执行的语句。
1.2.1 encodeURI(uri)函数
-
uri需要编码的字符串
1.2.2
decodeURI(url)
- url:需要解码的URI字符串
8.定义匿名函数
1.1.在表达式中定义函数
<script type="text/javascript">
var 变量名 =function(参数1,参数2,...){
函数体
}
</script>
这种定义函数的方法不需要指定函数名,只需要把定义的函数赋值给另外一个变量,然后后面的就可以通过这个变量来调用这个函数了。这种定义函数的方法有很好的可读性。
<script type="text/javascript">
var sum=function(x,y){
return x+y
}
alert('和为:'+sum(10,20))
</script>
1.2.使用Function()构造函数
语法:
<script type="text/javascript">
var 变量名 =new Function(参数1,参数2,'函数体')
</script>
示列:
<script type="text/javascript">
var sum=new Function('x','y','alert(x+y)')
sum(10,20)
</script>
注意:
sum并不是一个函数名,而是一个指向函数的变量,因此,使用Function构造函数创建的函数也是匿名函数。