1.简单的计算器
<!DOCTYPE html>
<html lang="ch">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<script type="text/javascript">
var num1 = parseFloat(prompt("please input first num", ""));
var num2 = parseFloat(prompt("please input second num", ""));
var operate = prompt("please input second num", "");
var result;
switch (operate) {
case "+":
result = num1 + num2;
break;
case "-":
result = num1 - num2;
break;
case "*":
result = num1 * num2;
break;
case "/":
if (num2 != 0) {
result = num1 / num2;
} else {
window.alert("the second num can not be 0");
}
break;
}
document.write("the result is " + result);
</script>
</head>
<body>
</body>
</html>
2.采用字面直接量的方式定义函数(函数赋值给字面直接量(变量))
var 变量=function(){ }
<script type="text/javascript">
var myres = function () {
var num1 = parseFloat(prompt("please input first num", ""));
var num2 = parseFloat(prompt("please input second num", ""));
var operate = prompt("please input second num", "");
var result;
switch (operate) {
case "+":
result = num1 + num2;
return result;
break;
case "-":
result = num1 - num2;
return result;
break;
case "*":
result = num1 * num2;
return result;
break;
case "/":
if (num2 != 0) {
result = num1 / num2;
return result;
} else {
window.alert("the second num can not be 0");
}
break;
}
return result;
}
//window.alert(myres());
document.write(myres());
</script>
3.以对象的形式声明一个函数
var 变量=new Function(参数1,参数2,…);
<script type="text/javascript">
var myres = new Function(alert("123"));
myres();
</script>
4.arguments对象(参数的一个对象)
给函数设定参数的时候,自动回生成一个关于参数的arguments对象
<script type="text/javascript">
function myfor(a, b) {
for (var i = 0; i < arguments.length; i++) {
document.write(i * a + "\t");
}
}
myfor(4, 5);
</script>
5.使用arguments对象模拟函数重载
<script type="text/javascript">
function myfor(a, b) {
switch (arguments.length) {
case 1:
document.write("first param is:" + a);
break;
case 2:
document.write("first param is:" + a + " and the seconde is:" + b);
break;
default:
for (let index = 3; index < arguments.length; index++) {
document.write("the param " + index + " is " + arguments[index] + "\n");
}
break;
}
}
myfor(4, 5, 6, 9, 21, 443, 54);
myfor(4, 54);
</script>
结果:
the param 3 is 9 the param 4 is 21 the param 5 is 443 the param 6 is 54
first param is:4 and the seconde is:5
6.函数指针(函数名)作为参数进行调用,传一个函数给参数-----回调函数
回调函数通过指针来调用
<script type="text/javascript">
function math(num1, num2, fun) {
return fun(num1, num2);
}
function myfun(num1, num2) {
return (num1 + num2) * 2 + 1;
}
document.write(math(3, 4, myfun));
</script>
结果
15
也可以通过匿名调用
<script type="text/javascript">
function math(num1, num2, fun) {
return fun(num1, num2);
}
document.write(math(5, 4, function (num1, num2) {
return (num1 + num2) * 2 + 1;
}));
</script>
结果
19
7.定义并同时执行函数
<script type="text/javascript">
(function myfun() {
document.write("定义并执行函数");
})();
</script>
结果
定义并执行函数
再例
<script type="text/javascript">
(function myfun(str) {
document.write("定义并执行函数" + str);
})("这样作为参数也可以");
</script>
结果:
定义并执行函数这样作为参数也可以
8.定时调用函数函数
<script type="text/javascript">
function myfun() {
var str = Date("yy-m-d H:i:s");
document.write(str);
}
setInterval(myfun, 1000);
</script>
9.递归函数调用
<script type="text/javascript">
function myfun(num) {
if (num > 1) {
myfun(--num);
}
document.write(num);
}
myfun(8);
</script>
结果
11234567