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模块化编程(一)模块的写法最佳实践
Jan 17 Javascript
jQuery遍历对象、数组、集合实例
Nov 08 Javascript
jQuery预加载图片常用方法
Jun 15 Javascript
灵活使用数组制作图片切换js实现
Jul 28 Javascript
jquery删除数组中重复元素
Dec 05 Javascript
在javaScript中检测数据类型的几种方式小结
Mar 04 Javascript
详解Vue 方法与事件处理器
Jun 20 Javascript
微信小程序tabBar模板用法实例分析【附demo源码下载】
Nov 28 Javascript
JavaScript实现预览本地上传图片功能完整示例
Mar 08 Javascript
Flutter实现仿微信底部菜单栏功能
Sep 18 Javascript
js实现百度淘宝搜索功能
Feb 17 Javascript
jQuery编写QQ简易聊天框
Aug 27 jQuery
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多线程抓取网页实现代码
2010/07/22 PHP
php array_slice 取出数组中的一段序列实例
2016/11/04 PHP
jquery动态加载select下拉框示例代码
2013/12/10 Javascript
JavaScript数组常用操作技巧汇总
2014/11/17 Javascript
JS设置下拉列表框当前所选值的方法
2015/12/22 Javascript
Angularjs中的事件广播 —全面解析$broadcast,$emit,$on
2016/05/17 Javascript
JavaScript仿flash遮罩动画效果
2016/06/15 Javascript
Jquery和Js获得元素标签名称的方法总结
2016/10/08 Javascript
AngularJS入门教程之与服务器(Ajax)交互操作示例【附完整demo源码下载】
2016/11/02 Javascript
js实现模糊匹配功能
2017/02/15 Javascript
jQuery插件MovingBoxes实现左右滑动中间放大图片效果
2017/02/28 Javascript
vue学习之mintui picker选择器实现省市二级联动示例
2017/10/12 Javascript
Angular2开发环境搭建教程之VS Code
2017/12/15 Javascript
详解webpack-dev-server使用方法
2018/09/14 Javascript
后台使用freeMarker和前端使用vue的方法及遇到的问题
2019/06/13 Javascript
Vue.js中的extend绑定节点并显示的方法
2019/06/20 Javascript
JS+CSS实现炫酷光感效果
2020/09/05 Javascript
Vue使用Ref跨层级获取组件的步骤
2021/01/25 Vue.js
[01:33]完美世界DOTA2联赛PWL S3 集锦第二期
2020/12/21 DOTA
python中将阿拉伯数字转换成中文的实现代码
2011/05/19 Python
深入讲解Python函数中参数的使用及默认参数的陷阱
2016/03/13 Python
实例讲解Python爬取网页数据
2018/07/08 Python
tensorflow 用矩阵运算替换for循环 用tf.tile而不写for的方法
2018/07/27 Python
python用fsolve、leastsq对非线性方程组求解
2018/12/15 Python
用python生成(动态彩色)二维码的方法(使用myqr库实现)
2019/06/24 Python
pyqt 实现QlineEdit 输入密码显示成圆点的方法
2019/06/24 Python
Python3实现监控新型冠状病毒肺炎疫情的示例代码
2020/02/13 Python
Python astype(np.float)函数使用方法解析
2020/06/08 Python
html5使用canvas绘制文字特效
2014/12/15 HTML / CSS
Omio俄罗斯:一次搜索公共汽车、火车和飞机的机票
2018/11/17 全球购物
MAC彩妆澳洲官网:M·A·C AU
2021/01/17 全球购物
Lungolivigno Fashion官网:高级时装在线购物
2020/10/17 全球购物
会计学专业求职信
2014/07/17 职场文书
学校国庆节活动总结
2015/03/23 职场文书
2015年学校教育教学工作总结
2015/04/22 职场文书
SQL语法CONSTRAINT约束操作详情
2022/01/18 MySQL