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 相关文章推荐
大家未必知道的Js技巧收藏
Apr 07 Javascript
jQuery 使用手册(二)
Sep 23 Javascript
一个字符串反转函数可实现字符串倒序
Sep 15 Javascript
jquery中post方法用法实例
Oct 21 Javascript
a标签的href与onclick事件的区别详解
Nov 12 Javascript
ES2015 Symbol 一种绝不重复的值
Dec 25 Javascript
jQuery列表检索功能实现代码
Jul 17 jQuery
基于Vue2.X的路由和钩子函数详解
Feb 09 Javascript
详解vue beforeRouteEnter 异步获取数据给实例问题
Aug 09 Javascript
js和jquery判断数据类型的4种方法总结
Aug 28 jQuery
JS获取一个字符串中指定字符串第n次出现的位置
Feb 10 Javascript
JavaScript 反射学习技巧
Oct 16 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计算日期相差天数实例分析
2016/02/23 PHP
ExtJs 3.1 XmlTreeLoader Example Error
2010/02/09 Javascript
JavaScript 函数replace深入了解
2013/03/14 Javascript
可兼容IE的获取及设置cookie的jquery.cookie函数方法
2013/09/02 Javascript
JavaScript中的数学运算介绍
2014/12/29 Javascript
jQuery选择器源码解读(一):Sizzle方法
2015/03/31 Javascript
jquery小火箭返回顶部代码分享
2015/08/19 Javascript
使用JavaScript脚本无法直接改变Asp.net中Checkbox控件的Enable属性的解决方法
2015/09/16 Javascript
全面解析Bootstrap弹窗的实现方法
2015/12/01 Javascript
详解JavaScript 中的 replace 方法
2016/01/01 Javascript
Google 地图控件集详解及实例代码
2016/08/06 Javascript
nodejs6下使用koa2框架实例
2017/05/18 NodeJs
详解JS数据类型的值拷贝函数(深拷贝)
2017/07/13 Javascript
Vue按需加载的具体实现
2017/12/02 Javascript
swiper自定义分页器使用方法详解
2020/09/14 Javascript
vue2.0 + ele的循环表单及验证字段方法
2018/09/18 Javascript
vue的for循环使用方法
2019/02/12 Javascript
JS数组方法concat()用法实例分析
2020/01/18 Javascript
基于vue和websocket的多人在线聊天室
2020/02/01 Javascript
让python的Cookie.py模块支持冒号做key的方法
2010/12/28 Python
python+mongodb数据抓取详细介绍
2017/10/25 Python
Python Json序列化与反序列化的示例
2018/01/31 Python
Python爬虫使用Selenium+PhantomJS抓取Ajax和动态HTML内容
2018/02/23 Python
python: 自动安装缺失库文件的方法
2018/10/22 Python
解决sublime+python3无法输出中文的问题
2018/12/12 Python
python新式类和经典类的区别实例分析
2020/03/23 Python
python实现AdaBoost算法的示例
2020/10/03 Python
10个python爬虫入门实例(小结)
2020/11/01 Python
StubHub意大利:购买和出售全球演唱会和体育赛事门票
2017/11/21 全球购物
阿里巴巴英国:Alibaba英国
2019/12/11 全球购物
致百米运动员广播稿
2014/01/29 职场文书
幼儿园大班毕业教师寄语
2014/04/03 职场文书
爱心募捐感谢信
2015/01/22 职场文书
胡雪岩故居导游词
2015/02/06 职场文书
防暑降温通知书
2015/04/27 职场文书
毕业论文致谢范文
2015/05/14 职场文书