讲给Android程序员看的前端教程(29)——函数

来源:互联网 发布:手机拍照识字软件 编辑:程序博客网 时间:2024/06/06 20:00

自定义View系列教程00–推翻自己和过往,重学自定义View
自定义View系列教程01–常用工具介绍
自定义View系列教程02–onMeasure源码详尽分析
自定义View系列教程03–onLayout源码详尽分析
自定义View系列教程04–Draw源码分析及其实践
自定义View系列教程05–示例分析
自定义View系列教程06–详解View的Touch事件处理
自定义View系列教程07–详解ViewGroup分发Touch事件
自定义View系列教程08–滑动冲突的产生及其处理


探索Android软键盘的疑难杂症
深入探讨Android异步精髓Handler
详解Android主流框架不可或缺的基石
站在源码的肩膀上全解Scroller工作机制


Android多分辨率适配框架(1)— 核心基础
Android多分辨率适配框架(2)— 原理剖析
Android多分辨率适配框架(3)— 使用指南


版权声明

  • 本文原创作者:谷哥的小弟
  • 作者博客地址:http://blog.csdn.net/lfdfhl
  • 本文视频教程:http://www.stay4it.com/my/course/37

JavaScript中的函数的功能非常丰富和强大,和我们熟悉的java不一样:JavaScript的函数还可以当做一个类使用,而且函数本身也是一个Function实例。嗯哼,来吧,我们开始学习JavaScript的函数。

定义函数的方式

JavaScript是弱类型语言;所以,在定义函数时既不需要声明函数的返回值类型,也不需要声明函数的输入参数类型。在此,介绍JavaScript中三种常用的函数定义方式。

函数声明式

语法格式如下:

function functionName(parameter){   statements}

该方式是JavaScript中最常用的定义函数的方式。

请看如下示例:

<!DOCTYPE html><html lang="en"><head>    <meta charset="UTF-8">    <title>函数</title></head><body>    <script type="text/javascript">        function print(message){            document.writeln(message+"<br>");            var result="已经处理消息";            return result;        }        var msg=print("今天吃饭碰到一个漂亮的妹子");        document.writeln(msg+"<br>");    </script></body></html>

代码详解如下:

  • 定义函数,请参见代码第9-13行。
    函数名叫做print,接收一个输入参数,并向调用者返回结果值

  • 调用函数并接收返回值,请参见代码第14行。

  • 显示函数的返回值,请参见代码第15行。

匿名函数

语法格式如下:

function (parameter){   statements};

在该方式中无须指定函数名,并且最终以英文分号;结尾。

请看如下示例:

<!DOCTYPE html><html lang="en"><head>    <meta charset="UTF-8">    <title>函数</title></head><body>    <script type="text/javascript">        var printMessage=function (message){            document.writeln(message+"<br>");            var result="已经处理消息";            return result;        };        var msg=printMessage("我的编号是9527");        document.writeln(msg+"<br>");    </script></body></html>

代码详解如下:

  • 定义匿名函数并将其赋值给变量printMessage,请参见代码第9-13行

  • 利用变量printMessage调用函数,请参见代码第14行

  • 显示函数的返回结果,请参见代码第15行

Function定义匿名函数

语法格式如下:

new function ('parameter','function body;');

JavaScript中提供Function类用于定义函数。Function类的构造函数的参数个数不受限制,并且最后一个字符串参数是函数的执行体。

请看如下示例:

<!DOCTYPE html><html lang="en"><head>    <meta charset="UTF-8">    <title>函数</title></head><body>    <script type="text/javascript">        var printMessage=new Function("message","document.writeln(message+'<br>');");        printMessage("hello Function");    </script></body></html>

代码详解如下:

  • 利用Function定义函数并将其赋值给变量printMessage,请参见代码第9行
    该函数有一个输入参数message,并在函数体中显示该消息

  • 利用变量printMessage调用函数,请参见代码第10行


函数提升

与之前我们讲过变量提升非常类似,在JavaScript中函数提升指的是:将函数的定义提升至<script> </script>元素的顶部。请看如下示例:

<!DOCTYPE html><html lang="en"><head>    <meta charset="UTF-8">    <title>函数提升</title></head><body>    <script type="text/javascript">    print("hello javascript");    function print(message) {        document.writeln(message);    }    </script></body></html>

在该实例中,我们之所以可以先调用函数再定义函数,就是因为JavaScript自动将函数print的定义提升到了<script> </script>的顶部。所以,该示例等同于如下代码:

<!DOCTYPE html><html lang="en"><head>    <meta charset="UTF-8">    <title>函数提升</title></head><body>    <script type="text/javascript">    function print(message) {        document.writeln(message);    }    print("hello javascript");    </script></body></html>

请注意:如果通过匿名方式定义函数并将函数赋值给变量,那么在该方式下依然会发生函数提升。但是,只提升被赋值的变量而函数定义本身不会被提升。

请看如下示例:

<!DOCTYPE html><html lang="en"><head>    <meta charset="UTF-8">    <title>函数提升</title></head><body>    <script type="text/javascript">    printMessage("hello javascript");    var printMessage = function(message) {        document.writeln(message);    }    </script></body></html>

运行,如上程序会报错。因为匿名函数的本身并没有被提升。所以,此时需将函数的调用置于匿名函数的声明之后。


嗯哼,关于JavaScript的函数的基础知识到此结束。

阅读全文
1 0
原创粉丝点击