函数:将完成某一特定功能的代码集合起来,可以重复使用的代码块。
-------------------------------------
一、函数的声明方式(创建)
A.基本语法
function 关键字
function 函数名([参数1],[参数2]....){
函数体
[retrun] //返回值
}
function math () {
var num1=parseFloat(prompt("请输入",""));
var num2=parseFloat(prompt("请输入",""));
var operator=prompt("请输入运算符","");
var result;
switch (operator) {
case "+":
result=num1+num2;
break;
case "-":
result=num1-num2;
break;
case "*":
result=num1*num2;
break;
case "/":
result=num1/num2;
break;
default:
result="输入有误";
}
return result;
}
alert(math());
B.字面量定义的形式(匿名函数)
var 变量=function ([参数1],[参数2]....){
函数体
[retrun] //返回值
}
var fun=function () {
var num1=parseFloat(prompt("请输入",""));
var num2=parseFloat(prompt("请输入",""));
var operator=prompt("请输入运算符","");
var result;
switch (operator) {
case "+":
result=num1+num2;
break;
case "-":
result=num1-num2;
break;
case "*":
result=num1*num2;
break;
case "/":
result=num1/num2;
break;
default:
result="输入有误";
}
return result;
}
alert(fun());
C.以对象的形式来声明(不常用)
new 关键字。
var 变量=new Function([参数1],[参数2]...,"函数体");
var fun=new Function(alert("330141830"))
fun();
-------------------------------------
二、函数的调用方式
A.函数名() 、变量名();(前面代码中已经体现)
B.(function () {alert("后盾网");})(); ()在这个括号的含义是运行一段函数.下面代码是加括号和不加括号的不同
1.函数调用时不加括号
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<input type="button" value="验证" id="tes"></input>
<script type="text/javascript">
var tes=document.getElementById('tes');
var fun=function ()
{
alert("中国");
}
tes.οnclick=function(){
alert(fun);
}
</script>
</body>
</html>
结果:
2,函数调用时加括号
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<input type="button" value="验证" id="tes"></input>
<script type="text/javascript">
var tes=document.getElementById('tes');
var fun=function ()
{
alert("中国");
}
tes.οnclick=function(){
alert(fun());
}
</script>
</body>
</html>
结果
-------------------------------------
三、两种声明方式的区别(第A种和第B种)
1.如果两个函数的命名相同,后面的将会覆盖前面的函数。
2.以基本语法声明的函数,会在代码运行的时候,提前加载到内存当中,以供以后使用,
但是以字面量形式命名的函数,会在执行到的时候,才进行赋值。
3.在不同的<script></script>块中的函数,使用和调用的时候,应该先定义,后执行。