细说javascript函数从函数的构成开始


Posted in Javascript onAugust 29, 2013

javascript函数是一个比较奇怪的东西,接触一段时间你就会犯迷糊,弄不明白它到底是什么了。你是否会因为有的javascript函数没有名字而莫名其妙,是否会因为javascript函数的参数没有类型而抓狂,是否为javascript函数以表达式的形态存在而彻底崩溃。正是因为有了这些烦恼才让javascript函数值得我们寻味,我想从函数的构成来细说函数,这听起来像是一句废话,讲任何东西当然是从构成去谈,但是由于javascript函数你确实捉摸不了它的形态,因此这里我是从一个标准函数的构成来细说。

1.函数名
在面向对象语言中,函数一般都有名称,但javascript函数不一定,这类函数称为匿名函数或者函数直接量。它就像是一个表达式,然后这个表达式的左值即可以用来调用函数,也可以存储在变量中传递给其它的函数。它的好处就是不用每次调用的时候创建新的对象。

var f= function (x) {return x*x;}; 
alert( f(6) );

以上例子就会在页面上弹出窗口显示36

2.参数
javascript函数的参数也比较神奇,调用javascript函数时如果填写的参数和函数定义的参数不一致(例如个数不一致),程序不会出错,有时甚至能调用成功,这对于java语言是无法想象的,但javascript函数可以做到。例如上面的例子,我们这样调用:

alert(f(6,7))

结果仍然是36。虽然这样不会出错,但是我们仍然想函数被正确的调用,保证调用时和函数定义的参数数目一致。通过Arguments对象可以获取函数调用者的参数数目。修改上述代码。
var f= function (x) { 
if(arguments.length>1) { 
return "out of range"; 
} else { 
return x*x; 
} 
}; 
alert( f(6,7) );

处理获取函数调用者的参数数目,还可以获取到这些参数的值,将上述代码再进行一番修改:
var f= function (x) { 
if(arguments.length>1) { 
return arguments[0]*arguments[1];

} else { 
return x*x; 
} 
}; 
alert( f(6,7) );

你能猜出结果是多少吗?对,是42。
Javascript 相关文章推荐
JavaScript效率调优经验
Jun 04 Javascript
10款非常有用的 Ajax 插件分享
Mar 14 Javascript
基于JQuery的类似新浪微博展示信息效果的代码
Jul 23 Javascript
js/jquery判断浏览器的方法小结
Sep 02 Javascript
javascript中callee与caller的区别分析
Apr 20 Javascript
javascript+ajax实现产品页面加载信息
Jul 09 Javascript
浅析C/C++,Java,PHP,JavaScript,Json数组、对象赋值时最后一个元素后面是否可以带逗号
Mar 22 Javascript
简单实现JS上传图片预览功能
Apr 14 Javascript
微信小程序搭建自己的Https服务器
May 02 Javascript
layUI的验证码功能及校验实例
Oct 25 Javascript
javascript浅层克隆、深度克隆对比及实例解析
Feb 09 Javascript
nuxt 路由、过渡特效、中间件的实现代码
Nov 06 Javascript
密码框显示提示文字jquery示例
Aug 29 #Javascript
div+css+js实现无缝滚动类似marquee无缝滚动兼容firefox
Aug 29 #Javascript
js中的数组Array定义与sort方法使用示例
Aug 29 #Javascript
js禁止页面复制功能禁用页面右键菜单示例代码
Aug 29 #Javascript
extjs中form与grid交互数据(record)的方法
Aug 29 #Javascript
JS中图片缓冲loading技术的实例代码
Aug 29 #Javascript
js中substring和substr的详细介绍与用法
Aug 29 #Javascript
You might like
php中动态调用函数的方法
2015/03/16 PHP
PHP中Cookie的使用详解(简单易懂)
2017/04/28 PHP
创建一个复制UBB软件信息的链接或按钮的js代码
2008/01/06 Javascript
JavaScript 格式字符串的应用
2010/03/29 Javascript
一个简单的网站访问JS计数器 刷新1次加1次访问
2012/09/20 Javascript
JS 获取select(多选下拉)中所选值的示例代码
2013/08/02 Javascript
js实现屏幕自适应局部代码分享
2015/01/30 Javascript
jQuery.extend 函数及用法详细
2015/09/06 Javascript
Ionic默认的Tabs模板使用实例
2016/08/29 Javascript
JS中作用域和变量提升(hoisting)的深入理解
2016/10/31 Javascript
js仿iphone秒表功能 计算平均数
2017/01/11 Javascript
js禁止浏览器页面后退功能的实例(推荐)
2017/09/01 Javascript
Vue.js项目模板搭建图文教程
2017/09/20 Javascript
Vue实现PopupWindow组件详解
2018/04/28 Javascript
vue中的模态对话框组件实现过程
2018/05/01 Javascript
在小程序中使用Echart图表的示例代码
2018/08/02 Javascript
创建echart多个联动的示例代码
2018/11/23 Javascript
JavaScript实现浏览器网页自动滚动并点击的示例代码
2020/12/05 Javascript
Python实现二分法算法实例
2015/02/02 Python
python如何通过protobuf实现rpc
2016/03/06 Python
Python 自动刷博客浏览量实例代码
2017/06/14 Python
Python中input与raw_input 之间的比较
2017/08/20 Python
Django读取Mysql数据并显示在前端的实例
2018/05/27 Python
Python对excel文档的操作方法详解
2018/12/10 Python
nginx黑名单和django限速,最简单的防恶意请求方法分享
2019/08/09 Python
python openvc 裁剪、剪切图片 提取图片的行和列
2019/09/19 Python
python判断元素是否存在的实例方法
2020/09/24 Python
HTML5 Canvas中使用用路径描画圆弧
2015/01/01 HTML / CSS
HTML5、Select下拉框右边加图标的实现代码(增进用户体验)
2017/10/16 HTML / CSS
英国大码女性时装零售商:Evans
2018/08/29 全球购物
高三自我鉴定怎么写
2013/10/19 职场文书
高二政治教学反思
2014/02/01 职场文书
化妆品活动策划方案
2014/05/23 职场文书
干部竞争上岗演讲稿
2014/09/11 职场文书
代领学位证书毕业证书委托书
2014/09/30 职场文书
给老婆的保证书怎么写
2015/05/08 职场文书