函数
函数的基本概念
为完成某一功能的程序指令(语句)的集合,称为函数。有的程序员把函数称为方法,希望大家不要被这两个名词搞晕了。
函数分为:自定义函数、系统函数(经常查看js帮助手册)。
js自定义函数基本语法:
function 函数名(参数列表){ //代码语句 return 值;//有无返回值是可以选择的。 }
参数列表:表示函数的输入
函数可以有返回值,也可以没有
例,
函数.html:
<!DOCTYPE html> <htm> <head> <meta charset="UTF-8"> <title>Document</title> <script type="text/javascript" src="我的函数.js"></script> <script type="text/javascript"> <!--为了浏览器的兼容性,有时这样写 var num1 = window.prompt("请输入第一个数"); var num2 = window.prompt("请输入第二个数"); var operator = window.prompt("请输入运算符"); num1 = parseFloat(num1); num2 = parseFloat(num2); //如何调用函数 document.writeln("res="+jiSuan(num1, num2, operator));//--> </script> </head> <body> </body> </html>
我的函数.js:
//自定义函数 function jiSuan(num1, num2, operator) {//特别强调,参数名不要带var var res = 0; if(operator == "+") { res = num1 + num2; } else if(operator == "-") { res = num1 - num2; } else if(operator == "*") { res = num1 * num2; } else { res = num1 / num2; } return res;//返回 }
如果其它多个html/php/jsp要使用自定义函数,必需引入。上面的函数单独提出,写到js文件中,然后在需要的html/php/jsp的地方引入。
js文件引入语法:
<script language="javascript" src="js的路径"></script> 或 <script type="text/javascript" src="js的路径"></script>
下面叙述几个全局函数:
eval()函数可计算某个字符串,并执行其中的的JavaScript代码。如:
var str = "window.alert(‘ok‘)"; //需求:把str当作一个脚本来执行 eval(str);
escape()函数可对字符串进行编码,这样就可以在所有的计算机上读取该字符串。
unescape()函数可对通过escape()编码的字符串进行解码。
escape和unescape函数往往配合使用,可以防止乱码出现。如:
先使用escape()函数对字符串“李阿昀”进行编码:
var str1 = "李阿昀"; var str2 = escape(str1); window.alert(str2);
此时浏览器弹出乱码:
然后再使用unescape()函数对通过escape()编码的字符串进行解码:
var str3 = unescape(str2); window.alert(str3);
此时显示正常:
函数的几种调用方式
例,
我的函数.js:
function test(val) { window.alert("你输入的是"+val); }
函数.html(部分):
test("hello, world");
此时弹出对话框显示"hello, world"。
window.alert(test);
此时弹出如下对话框(会将整个函数显示出来):
var myvar = test; window.alert(myvar); myvar("中国北京");
先弹出整个函数的对话框,再弹出"中国北京"字符串。
特别注意:
对于有返回值的函数调用,也可以在程序中直接使用返回的结果。(即如果有返回值,则是什么就是什么)
没有返回值的函数,则返回underined。(如,如果test()函数没有返回值,但是你有接受了,则返回的是undefined)。
函数调用——递归
函数如下:
function abc(num1) { if(num1 > 3) { abc(--num1);//递归 } document.writeln(num1); }
函数调用:
abc(5);
输出结果:3 3 4。
递归分析如图:
函数--深入使用
例,编写一个函数,可以接受任意多个数,并计算他们的和。
我的函数.js:
function abc2(n1) {//参数有多少本质上不关心,只关心函数名 //在js中有一个arguments,可以访问所有传入值 //window.alert(arguments.length); for(var i = 0; i < arguments.length; i++) { window.alert(arguments[i]); } }
函数.html(部分):
window.alert("abc2(45, 90, 900);");
abc2(45, 90, 900);//可全传数值
window.alert("abc2(4,\"hello, world\");");
abc2(4, "hello, world");//即可传数值又可传字符串
window.alert("abc2();");
abc2();//还可什么都不传
使用function类创建函数(???)
创建动态函数的基本语法格式:
var varName=new function(argument1,...,lastArgument);
说明:所有的参数都必需是字符串型的,最后的参数必需是这个动态函数的功能程序代码。
例,
var square=new function("x","y","var sum;sum=x*x+y*y;return sum;"); alert(square(3,2)); var alsoDoSquare=doAdd; alert(alsoDoSquare(3,2));
注意:闭包和函数的作用域及this还没有讲,必需放在面向对象中讲解。
原文:http://www.cnblogs.com/yerenyuan/p/5372041.html