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读取ASP设定的COOKIE
Feb 15 Javascript
基于jQuery的message插件实现右下角弹出消息框
Jan 11 Javascript
在IE和VB中支持png图片透明效果的实现方法(vb源码打包)
Apr 01 Javascript
Ext JS 4官方文档之三 -- 类体系概述与实践
Dec 16 Javascript
js一般方法改写成面向对象方法的无限级折叠菜单示例代码
Jul 04 Javascript
js实现点击后将文字或图片复制到剪贴板的方法
Aug 04 Javascript
JavaScript中指定函数名称的相关方法
Jun 04 Javascript
微信小程序登录态控制深入分析
Apr 12 Javascript
学习使用Bootstrap输入框、导航、分页等常用组件
May 11 Javascript
jquery实现简单实用的轮播器
May 23 jQuery
vue.js 2.0实现简单分页效果
Jul 29 Javascript
详解webpack-dev-middleware 源码解读
Mar 23 Javascript
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
五款常用mysql slow log分析工具的比较分析
2011/05/22 PHP
php+Mysqli利用事务处理转账问题实例
2015/02/11 PHP
php接口隔离原则实例分析
2019/11/11 PHP
CheckBox 如何实现全选?
2006/06/23 Javascript
jquery 指南/入门基础
2007/11/30 Javascript
javascript 流畅动画实现原理
2009/09/08 Javascript
jQuery 关于伪类选择符的使用说明
2013/04/24 Javascript
showModalDialog在谷歌浏览器下会返回Null的解决方法
2013/11/27 Javascript
JavaScript三元运算符的多种使用技巧
2015/04/16 Javascript
javascript父子页面通讯实例详解
2015/07/17 Javascript
最原始的jQuery注册验证方式
2016/10/11 Javascript
jQuery点击弹出层弹出模态框点击模态框消失代码分享
2017/01/21 Javascript
微信小程序  TLS 版本必须大于等于1.2问题解决
2017/02/22 Javascript
Bootstrap输入框组件简单实现代码
2017/03/06 Javascript
react学习笔记之state以及setState的使用
2017/12/07 Javascript
jquery自定义显示消息数量
2017/12/19 jQuery
详解如何在Vue项目中导出Excel
2019/04/19 Javascript
layui自定义验证,用ajax查询后台是否有重复数据,form.verify的例子
2019/09/06 Javascript
微信小程序上传帖子的实例代码(含有文字图片的微信验证)
2020/07/11 Javascript
[09:47]2018DOTA2亚洲邀请赛4.5SOLO赛 No[o]ne vs Sumail
2018/04/06 DOTA
使用python检测手机QQ在线状态的脚本代码
2013/02/10 Python
Python开发中爬虫使用代理proxy抓取网页的方法示例
2017/09/26 Python
Python实现的FTP通信客户端与服务器端功能示例
2018/03/28 Python
解决python大批量读写.doc文件的问题
2018/05/08 Python
Python3.8中使用f-strings调试
2019/05/22 Python
python opencv pytesseract 验证码识别的实现
2020/08/28 Python
意大利时尚精品店:Nugnes 1920
2020/02/10 全球购物
军训学生自我鉴定
2014/02/12 职场文书
事务机电主管工作职责
2014/02/25 职场文书
党支部活动策划方案
2014/08/18 职场文书
毕业生评语大全
2015/01/04 职场文书
排球赛新闻稿
2015/07/17 职场文书
2016年十一促销广告语
2016/01/28 职场文书
PHP对接阿里云虚拟号的实现(号码隐私保护)
2021/04/06 PHP
解决numpy和torch数据类型转化的问题
2021/05/23 Python
tomcat默认最大连接数及相关调整方法
2022/05/06 Servers