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 面向对象(创建对象)
Mar 30 Javascript
在javascript中关于节点内容加强
Apr 11 Javascript
angularjs客户端实现压缩图片文件并上传实例
Jul 06 Javascript
AngularJS中的$watch(),$digest()和$apply()区分
Apr 04 Javascript
bootstrap提示标签、提示框实现代码
Dec 28 Javascript
AngularJS框架的ng-app指令与自动加载实现方法分析
Jan 04 Javascript
详解jQuery事件
Jan 13 Javascript
使用jQuery实现两个div中按钮互换位置的实例代码
Sep 21 jQuery
微信小程序switch开关选择器使用详解
Jan 31 Javascript
ES6 如何改变JS内置行为的代理与反射
Feb 11 Javascript
LayUi使用switch开关,动态的去控制它是否被启用的方法
Sep 21 Javascript
深入了解JS之作用域和闭包
Jun 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
Zend Framework教程之Zend_Controller_Plugin插件用法详解
2016/03/07 PHP
php文件缓存方法总结
2016/03/16 PHP
原生js获取宽高与jquery获取宽高的方法关系对比
2014/04/04 Javascript
gridview生成时如何去掉style属性中的border-collapse
2014/09/30 Javascript
js实现禁止中文输入的方法
2015/01/14 Javascript
javascript去除字符串左右两端的空格
2015/02/05 Javascript
浅谈EasyUI中编辑treegrid的方法
2015/03/01 Javascript
JavaScript中的关联数组问题
2015/03/04 Javascript
简单的分页代码js实现
2016/05/17 Javascript
关于在Servelet中如何获取当前时间的操作方法
2016/06/28 Javascript
JS如何设置cookie有效期为当天24点并弹出欢迎登陆界面
2016/08/04 Javascript
详解angularjs中如何实现控制器和指令之间交互
2017/05/31 Javascript
vue项目环境变量配置的实现方法
2018/10/12 Javascript
如何正确解决VuePress本地访问出现资源报错404的问题
2020/12/03 Vue.js
[06:38]DOTA2怒掀电竞风暴 2013Chinajoy
2013/07/27 DOTA
在Python中进行自动化单元测试的教程
2015/04/15 Python
python 打印对象的所有属性值的方法
2016/09/11 Python
Python读取Json字典写入Excel表格的方法
2018/01/03 Python
python自动化报告的输出用例详解
2018/05/30 Python
使用tensorflow实现线性回归
2018/09/08 Python
python七夕浪漫表白源码
2019/04/05 Python
Python绘制二维曲线的日常应用详解
2019/12/04 Python
python 下载文件的多种方法汇总
2020/11/17 Python
python 合并多个excel中同名的sheet
2021/01/22 Python
HTML5和CSS3实例教程总结(推荐)
2016/07/18 HTML / CSS
Canvas引入跨域的图片导致toDataURL()报错的问题的解决
2018/09/19 HTML / CSS
Daisy London官网:英国最大的首饰集团IBB旗下
2019/02/28 全球购物
DogBuddy荷兰:找到你最完美的狗保姆
2019/04/17 全球购物
生态学毕业生自荐信
2013/10/27 职场文书
大专会计自我鉴定
2014/02/06 职场文书
基层党建工作宣传标语
2014/06/24 职场文书
云冈石窟导游词
2015/02/04 职场文书
接待员岗位职责
2015/02/13 职场文书
爱心募捐通知范文
2015/04/27 职场文书
安全教育培训制度
2015/08/06 职场文书
【DOTA2】高能暴走TK秀!PSG LGD vs ASTER - DPC 2022 WINTER TOUR CN
2022/04/02 DOTA