讲给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的函数的基础知识到此结束。
- 讲给Android程序员看的前端教程(29)——函数
- 讲给Android程序员看的前端教程(01)——HTML5入门
- 讲给Android程序员看的前端教程(02)——HTML5标签(1)
- 讲给Android程序员看的前端教程(03)——HTML5标签(2)
- 讲给Android程序员看的前端教程(04)——HTML5标签(3)
- 讲给Android程序员看的前端教程(05)——HTML5标签(4)
- 讲给Android程序员看的前端教程(06)——HTML5标签(5)
- 讲给Android程序员看的前端教程(07)——HTML5标签(6)
- 讲给Android程序员看的前端教程(08)——HTML5标签(7)
- 讲给Android程序员看的前端教程(09)——HTML5标签(8)
- 讲给Android程序员看的前端教程(10)——CSS概述
- 讲给Android程序员看的前端教程(11)——CSS选择器(1)
- 讲给Android程序员看的前端教程(12)——CSS选择器(2)
- 讲给Android程序员看的前端教程(13)——CSS选择器(3)
- 讲给Android程序员看的前端教程(14)——CSS选择器(4)
- 讲给Android程序员看的前端教程(15)——CSS选择器(5)
- 讲给Android程序员看的前端教程(16)——伪类
- 讲给Android程序员看的前端教程(17)——伪元素
- 讲给Android程序员看的前端教程(28)——流程控制
- 通过反射修改ViewPager最小滑动距离mTouchSlop
- UI控件-> ListView(2)
- VMware之EXSI安装-yellowcong
- SwitchyOmega
- 讲给Android程序员看的前端教程(29)——函数
- deep auto-encoder
- 十一月六日作业(双十一广告)
- 流体力学发展史
- idea搭建maven+springMvc框架的配置文件
- 从谷歌 V8 JS 引擎学到的优化经验
- Python异常处理
- (7)OGNL2:RequestAware前端设置list、set、map中每个属性,如何填写,如何获取
- 解决ubuntu14.04下samba共享目录share点开弹出没有权限访问的问题