2019-03-11 JavaScript学习笔记之函数

参考资料:《JavaScript从入门到精通》、《PHP、MySQL与JavaScript学习手册》

函数的定义

在JavaScript中,函数是由关键字function函数名一组参数以及置于大括号中需要执行的一段代码定义的。

定义函数的基本语法如下:

function functionName(parameter1, parameter2,……)
{
    statements;
    return expression;
}

参数说明:

  • functionName:用于指定函数名。在同一个页面中,函数名必须是唯一的,并且区分大小写。

  • parameter:可选项,用于指定参数列表。一个函数最多可以有255个参数。

  • statements:函数体。

  • return expression:可选项,用于返回函数值。

语句的第一行代表:

  • 用单词function开始函数定义。
  • 紧接着是函数名,必须由字母或下划线开头,后面可以是一串字母、数字、美元符号或下划线。
  • 必须有括号。
  • 可以有一个或多个参数,参数必须由逗号隔开。

注:函数名对大小写敏感。

例1 定义一个函数

function account(price,number)
{
    var sum=price*number;
    return sum;
}

函数的调用

函数的简单调用

函数的定义语句通常放在HTML的<head>段中,而函数的调用语句通常放在HTML的<body>段中。

函数的定义及调用语法如下:

<html>
    <head>
        <script type="text/javascript">
        function functionName(parameters)   //定义函数
            {
                some statements;
            }
        </script>
    </head>
    <body>
        <script type="text/javascript">
            functionName(parameters);           //调用函数
        </script>
    </body>
</html>

例2 函数的简单应用

<html>
    <head>
        <meta http-eqiv="Content-Type" content="text/html;charset=UTF-8">
        <title>函数的简单应用</title>
        <script type="text/javascript">
        function print(statement1,statement2,statement3);
        {
            alert(statement1+statement2+statement3);                //在页面中弹出对话框
        }
        </script>
    </head>
    <body>
        <script type="text/javascript">
            print("第一个JavaScript函数程序 ","作者:","QNKCDZ0");    //调用print()函数
        </script>
    </body>
</html>

输出:

第一个JavaScript函数程序 作者:QNKCDZ0

在事件响应中调用函数

当用户单机某个按钮或选中某个复选框时都将触发事件,通过编写程序对事件做出反应的行为称为响应事件。在JavaScript语言中,将函数与事件相关联就完成了响应事件的过程。

例3 当用户单击一个按钮时执行相应的函数

<head>
    <script language="javascript">
        function test()
         {
            alert("test");
         }
    </script>
</head>
<body>
    <form action="" method="post" name="form1">
        <input type="button" value="提交" onclick="test();">
    </form>
</body>

通过链接调用函数

函数可以在链接中被调用。

在<a>标签的href标记中使用“javascript:关键字”链接来调用函数。当用户单击该链接时相关函数将被执行。

例4 通过链接调用函数

<html>
    <head>
        <script language="javascript">
        function test()
        {
            alert("test");
        }
        </script>
    </head>
    <body>
        <a href="javascript:test()";>test</a>
    </body>
</html>

使用函数的返回值

可以在函数中添加return语句,将需要返回的值返回。

例5 函数返回值的简单使用

<html>
    <head>
        <meta http-eqiv="Content-Type" content="text/html;charset=UTF-8">
        <title>函数的返回值</title>
        <script type="text/javascript">
        function setValue(num1,num2,num3)
        {
            var avg=(num1+num2+num3)/3;
            return avg;
        }
        function getValue(num1,num2,num3)
        {
            document.write("参数分别为:"+num1+"、"+num2+"、"+num3+"。");
            var value=setValue(num1,num2,num3);
            document.write("取参数平均值,运行结果为:"+value);
        }        
        </script>
    </head>
    <body>
        <script type="text/javascript">
            getValue(60,59,60);
        </script>
    </body>
</html>

输出:

参数分别为:60、59、60。取参数平均值,运行结果为:59.666666666666664

嵌套函数

所谓嵌套函数即在函数内部再定义一个函数。

嵌套函数的语法如下:

<script type="text/javascript">
var outter=10;
    function functionName(parameters1,parameters2)
    {
        function InnerFunction()
        {
            somestatements;
        }
    }
</script>

参数说明:

  • functionName:外部函数名称。
  • InnerFunction:嵌套函数名称。

注意:使用嵌套函数可能会使代码的可读性降低。

递归函数

递归函数就是函数在自身的函数体内调用自身。

递归函数一般只有在特定情况下使用,例如求阶乘问题。

递归函数的语法如下:

var outter=10;
function functionName(parameters1)
{
    functionName(parameters2);
}

例6 使用递归函数求10!

<html>
    <head>
        <meta http-eqiv="Content-Type" content="text/html;charset=UTF-8">
        <title>递归函数的应用</title>
        <script type="text/javascript">
        function f(num)
        {
            if(num<=1)
            {
                return 1;
            }
            else
            {
                return f(num-1)*num;
            }
        }
        </script>
    </head>
    <body>
        <script type="text/javascript">
        alert("10!的结果为:"+f(10));
        </script>
    </body>
</html>

JavaScript中的内置函数

在使用JavaScript时,可以使用JavaScript的内置函数,这些函数是由JavaScript语言提供的。

parseInt()函数

该函数主要将首位为数字的字符串转换为数字,如果字符串不是以数字开头,那么返回NaN。

语法:

parseInt(StringNum,n);

参数说明:

  • StringNum:需要转换的字符串
  • n:可选项,提供在2~36之间的数字表示所保存数字的进制数。

parseFloat()函数

该函数主要将首位为数字的字符串转换为浮点型数字,如果字符串不是以数字开头,那么返回NaN。

语法:

parseFloat(StringNum);

isNaN()函数

该函数主要用于检查某个值是否为NaN。如果是,返回true,否则返回false。

语法:

isNaN(Num);

isFinite()函数

该函数主要用于检验某个表达式是否为无穷大。如果是,返回true,否则返回false。

语法:

isFinite(Num);

encodeURI()函数

该函数主要用于返回一个URI字符串编码后的结果。

语法:

encodeURI(url);

decodeURI()函数

该函数主要用于将已编码为URI的字符串解码为最初的字符串并返回。

语法:

decodeURI(url);

Function()构造函数与函数直接量

还可以使用Function()构造函数和函数直接量定义来定义函数。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 211,884评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,347评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,435评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,509评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,611评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,837评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,987评论 3 408
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,730评论 0 267
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,194评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,525评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,664评论 1 340
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,334评论 4 330
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,944评论 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,764评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,997评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,389评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,554评论 2 349

推荐阅读更多精彩内容