码迷,mamicode.com
首页 > 编程语言 > 详细

JavaScript基础之函数与数组

时间:2016-04-09 18:48:35      阅读:148      评论:0      收藏:0      [点我收藏+]

标签:

   函数

   函数的基本概念

   为完成某一功能的程序指令(语句)的集合,称为函数。有的程序员把函数称为方法,希望大家不要被这两个名词搞晕了。

   函数分为:自定义函数、系统函数(经常查看js帮助手册)。

   js自定义函数基本语法:

function 函数名(参数列表){
    //代码语句
    return 值;//有无返回值是可以选择的。
}
  1. 参数列表:表示函数的输入

  2. 函数主体:表示为了实现某一功能代码块
  3. 函数可以有返回值,也可以没有 

   例,

   函数.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);

   此时显示正常:

   技术分享

   函数的几种调用方式

  1. 函数名(传递给函数的参数1,参数2,...)
  2. 变量=函数名,此时变量就相当于函数的引用(指针),可以这样调用函数:变量(实际参数..) 

   例,

   我的函数.js:

function test(val) {
    window.alert("你输入的是"+val);
}

   函数.html(部分):

test("hello, world");

   此时弹出对话框显示"hello, world"。

window.alert(test);

   此时弹出如下对话框(会将整个函数显示出来):

   技术分享

var myvar = test;
window.alert(myvar);
myvar("中国北京");

   先弹出整个函数的对话框,再弹出"中国北京"字符串。

   特别注意:

  1. 对于有返回值的函数调用,也可以在程序中直接使用返回的结果。(即如果有返回值,则是什么就是什么)

  2. 没有返回值的函数,则返回underined。(如,如果test()函数没有返回值,但是你有接受了,则返回的是undefined)。

   函数调用——递归

   函数如下:

function abc(num1) {
    if(num1 > 3) {
        abc(--num1);//递归
    }
    document.writeln(num1);
}

   函数调用:

abc(5);

   输出结果:3 3 4。

   递归分析如图:

   技术分享

   函数--深入使用

  1. 函数的参数列表可以是多个
  2. 参数列表可以是多个,并且数据类型可以是任意的类型
  3. js支持参数个数可变的函数
  4. js支持创建动态函数

   例,编写一个函数,可以接受任意多个数,并计算他们的和。

   我的函数.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还没有讲,必需放在面向对象中讲解。

 

   

 

JavaScript基础之函数与数组

标签:

原文地址:http://www.cnblogs.com/yerenyuan/p/5372041.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!