JavaScript函数的一些注意要点小结及js匿名函数


Posted in Javascript onNovember 10, 2015

下面给大家介绍javascript函数

函数的基本语法是:

function functionName(arg0,arg1,...,argN) {
 statements
}

下面是个示例:

function str(name,age){
 document.write("hello my name is " + name + ". and i am " + age + " years old.");
}
str(" oliver",23); //hello my name is oliver. and i am 23 years old.

另外,任何函数在任何时候都可以通过return 语句后跟要返回的值来实现返回值。如:

function sum(num1,num2){
 return num1 + num2;
 alert("hello"); //返回return 之后不会继续执行alert
}
var result = sum(321,32);
document.write(result); //353

因为执行完return 语句之后停止并立即退出,所以位于return 语句之后的任何代码都不会执行。

当然,一个函数可以包含多个return 语句。如:

function conp(a,b){
 if (a > b){
 return a;
 }else if (a == b){
 return "equal";
 }else{
 return b;
 }
}
var result = conp(4,4);
document.write(result); //equal
var result = conp(321,4);
document.write(result); //321

另外,return 语句也可以不带有任何返回值。这样,就可以立即停止函数执行并且返回undefined。如:

function conp(a,b){
 if (a > b){
 return;
 document.write("bad");
 }else{
 document.write(b);
 }
}
var a = conp(33,3);
document.write(a); //返回undefined 且不会出现"bad"

函数的参数

ECMAScript 函数的参数可以是任意多个,也可以是任何数据类型。它在函数体内可以通过arguments 对象来访问,如第一个参数是arguments[0]、第二个是arguments[1]等等。命名的参数只是提供了便利,但不是必须的。如:

function greeting(){
 document.write("hello " + arguments[0] + ". you look " + arguments[1] + ".");
}
greeting("oliver","good"); //hello oliver. you look good.

另外,可以通过访问arguments 对象的length 属性,获得有多少参数传递给了函数。如:

function countArguments(){
 document.write("there are " + arguments.length + " arguments here.");
}
countArguments(321,321,32,32); //there are 4 arguments here.

可以利用这一点与if 语句结合做判断。如:

function count(){
 if (arguments.length == 1){
 document.write("you just have 1 arguments.");
 }else{
 document.write("you have many arguments.");
 }
}
count(321,321,321) //you have many arguments.

另外,arguments[] 可以与命名参数一起使用。

函数的重载(没有重载)

如果定义了两个名字相同的参数,则改名字只属于后定义的函数。如:

function add(){
 document.write(arguments[0] + arguments[1]);
}
function add(){
 document.write(arguments[0] + 100);
}
add(321,2); //421 不会执行第一个函数(两个参数相加),只执行最后一个同名的函数(第一个参数加上100)

PS:JavaScript匿名函数

函数是JavaScript中最灵活的一种对象,这里只是讲解其匿名函数的用途。匿名函数:就是没有函数名的函数。

1.1 函数的定义,首先简单介绍一下函数的定义,大致可分为三种方式

第一种:这也是最常规的一种

function double(x){
 return 2 * x; 
}

第二种:这种方法使用了Function构造函数,把参数列表和函数体都作为字符串,很不方便,不建议使用。

var double = new Function('x', 'return 2 * x;');

第三种:

var double = function(x) { return 2* x; }

注意“=”右边的函数就是一个匿名函数,创造完毕函数后,又将该函数赋给了变量square。

1.2 匿名函数的创建

第一种方式:就是上面所讲的定义square函数,这也是最常用的方式之一。

第二种方式:

(function(x, y){
 alert(x + y); 
})(2, 3);

这里创建了一个匿名函数(在第一个括号内),第二个括号用于调用该匿名函数,并传入参数。

Javascript 相关文章推荐
javascript 使td内容不换行不撑开
Nov 29 Javascript
javascript实现自动填写表单实例简析
Dec 02 Javascript
JavaScript中的原始值和复杂值
Jan 07 Javascript
深入理解angularjs过滤器
May 25 Javascript
jQuery实现表格文本框淡入更改值后淡出效果
Sep 27 Javascript
Vue实例简单方法介绍
Jan 20 Javascript
javascript中mouseenter与mouseover的异同
Jun 06 Javascript
js实现复制功能(多种方法集合)
Jan 06 Javascript
利用js给datalist或select动态添加option选项的方法
Jan 25 Javascript
Vue使用高德地图搭建实时公交应用功能(地图 + 附近站点+线路详情 + 输入提示+换乘详情)
May 16 Javascript
深入解析Vue源码实例挂载与编译流程实现思路详解
May 05 Javascript
vue3中的组件间通信
Mar 31 Vue.js
javascript实现五星评分功能
Nov 10 #Javascript
javascript实现密码验证
Nov 10 #Javascript
JavaScript编程的单例设计模讲解
Nov 10 #Javascript
js数组常见操作及数组与字符串相互转化实例详解
Nov 10 #Javascript
浅谈javascript中replace()方法
Nov 10 #Javascript
使用jQuery获取data-的自定义属性
Nov 10 #Javascript
javascript适合移动端的日期时间拾取器
Nov 10 #Javascript
You might like
php单件模式结合命令链模式使用说明
2008/09/07 PHP
PHP+jQuery实现自动补全功能源码
2013/05/15 PHP
PHP使用mysql_fetch_object从查询结果中获取对象集的方法
2015/03/18 PHP
Yii框架引用插件和ckeditor中body与P标签去除的方法
2017/01/19 PHP
jQuery把表单元素变为json对象
2013/11/06 Javascript
jquery插件jquery倒计时插件分享
2013/12/27 Javascript
js中数组(Array)的排序(sort)注意事项说明
2014/01/24 Javascript
关于JavaScript中事件绑定的方法总结
2016/10/26 Javascript
Javascript实现倒计时时差效果
2017/05/18 Javascript
微信小程序实现YDUI的ScrollNav组件
2018/02/02 Javascript
详解react关于事件绑定this的四种方式
2018/03/09 Javascript
使用Angular CLI生成路由的方法
2018/03/24 Javascript
微信小程序监听用户登录事件的实现方法
2019/11/11 Javascript
使用Karma做vue组件单元测试的实现
2020/01/16 Javascript
Ant design vue中的联动选择取消操作
2020/10/31 Javascript
[03:49]显微镜下的DOTA2第十五期—VG登基之路完美团
2014/06/24 DOTA
[01:22:10]Ti4 循环赛第二日 DK vs Empire
2014/07/11 DOTA
Python内置数据结构与操作符的练习题集锦
2016/07/01 Python
python中的计时器timeit的使用方法
2017/10/20 Python
python批量替换多文件字符串问题详解
2018/04/22 Python
Python3.5实现的罗马数字转换成整数功能示例
2019/02/25 Python
Django Aggregation聚合使用方法解析
2019/08/01 Python
Python 切分数组实例解析
2019/11/07 Python
python按顺序重命名文件并分类转移到各个文件夹中的实现代码
2020/07/21 Python
python 深度学习中的4种激活函数
2020/09/18 Python
纯CSS3编写的的精美动画进度条(无flash/无图像/无脚本/附源码)
2013/01/07 HTML / CSS
仓库管理专业个人的自我评价
2013/12/30 职场文书
自我介绍演讲稿范文
2014/08/21 职场文书
学校拾金不昧表扬信
2015/01/16 职场文书
财务总监岗位职责
2015/02/03 职场文书
暖春观后感
2015/06/08 职场文书
《颐和园》教学反思
2016/02/19 职场文书
go开发alertmanger实现钉钉报警
2021/07/16 Golang
Spring中的使用@Async异步调用方法
2021/11/01 Java/Android
Python中如何处理常见报错
2022/01/18 Python
css3 文字断裂效果
2022/04/22 HTML / CSS