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 相关文章推荐
iframe 父窗口和子窗口相互的调用方法集锦
Dec 15 Javascript
javascript数组操作方法小结和3个属性详细介绍
Jul 05 Javascript
ztree获取当前选中节点子节点id集合的方法
Feb 12 Javascript
简介JavaScript中getUTCMonth()方法的使用
Jun 10 Javascript
Javascript数组Array方法解读
Mar 13 Javascript
JavaScript函数柯里化详解
Apr 29 Javascript
JavaScript函数中关于valueOf和toString的理解
Jun 14 Javascript
JavaScript新增样式规则(推荐)
Jul 19 Javascript
基于Marquee.js插件实现的跑马灯效果示例
Jan 25 Javascript
js 性能优化之快速响应的用户界面
Feb 15 Javascript
通过jquery.cookie.js实现记住用户名、密码登录功能
Jun 20 jQuery
使用vue-cli3新建一个项目并写好基本配置(推荐)
Apr 24 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
使用php+Ajax实现唯一校验实现代码[简单应用]
2011/11/29 PHP
解决ajax+php中文乱码的方法详解
2013/06/09 PHP
php解决抢购秒杀抽奖等大流量并发入库导致的库存负数的问题
2014/06/19 PHP
一个简单安全的PHP验证码类、PHP验证码
2016/09/24 PHP
smarty模板数学运算示例
2016/12/11 PHP
PHP实现QQ、微信和支付宝三合一收款码实例代码
2018/02/19 PHP
js 实现无缝滚动 兼容IE和FF
2009/07/15 Javascript
Javascript 函数parseInt()转换时出现bug问题
2014/05/20 Javascript
在JavaScript中处理时间之getHours()方法的使用
2015/06/10 Javascript
jquery实现可横向和竖向展开的动态下滑菜单效果
2015/08/24 Javascript
jQuery树形控件zTree使用小结
2016/08/02 Javascript
浅析Javascript的自动分号插入(ASI)机制
2016/09/29 Javascript
JS实现图片预加载之无序预加载功能代码
2017/05/12 Javascript
快速搭建vue2.0+boostrap项目的方法
2018/04/09 Javascript
通过jquery toggleClass()属性制作文章段落更改背景颜色
2018/05/21 jQuery
Vue数据绑定简析小结
2019/05/07 Javascript
vue+elementUI 复杂表单的验证、数据提交方案问题
2019/06/24 Javascript
[08:02]DOTA2牵红线 zhou神抱得美人归
2014/03/22 DOTA
[52:06]完美世界DOTA2联赛决赛日 Inki vs LBZS 第一场 11.08
2020/11/10 DOTA
linux环境下安装pyramid和新建项目的步骤
2013/11/27 Python
Python开发如何在ubuntu 15.10 上配置vim
2016/01/25 Python
Python 离线工作环境搭建的方法步骤
2019/07/29 Python
pycharm激活码有效到2020年11月底
2020/09/18 Python
Python3 ID3决策树判断申请贷款是否成功的实现代码
2020/05/21 Python
Python绘制K线图之可视化神器pyecharts的使用
2021/03/02 Python
解决H5的a标签的download属性下载service上的文件出现跨域问题
2019/07/16 HTML / CSS
Charlotte Tilbury澳大利亚官网:英国美妆品牌
2018/10/05 全球购物
标记环介质访问控制协议
2016/03/27 面试题
Linux Interview Questions For software testers
2013/05/17 面试题
班级入场式解说词
2014/02/01 职场文书
遗体告别仪式主持词
2014/03/20 职场文书
《将心比心》教学反思
2014/04/08 职场文书
《大自然的语言》教学反思
2014/04/08 职场文书
小学中等生评语
2014/12/29 职场文书
Python装饰器详细介绍
2022/03/25 Python
html中相对位置与绝对位置的具体使用
2022/05/15 HTML / CSS