细说javascript函数从函数的构成开始
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。
相关推荐
-
js中prototype用法详细介绍
prototype 是在 IE 4 及其以后版本引入的一个针对于某一类的对象的方法,而且特殊的地方便在于:它是一个给类的对象添加方法的方法!这一点可能听起来会有点乱,别急,下面我便通过实例对这一特殊的方法作已下讲解: 首先,我们要先了解一下类的概念,JavaScript 本身是一种面向对象的语言,它所涉及的元素根据其属性的不同都依附于某一个特定的类.我们所常见的类包括:数组变量(Array).逻辑变量(Boolean).日期变量(Date).结构变量(Function).数值变量(Number)
-
JavaScript prototype 使用介绍
用过JavaScript的同学们肯定都对prototype如雷贯耳,但是这究竟是个什么东西却让初学者莫衷一是,只知道函数都会有一个prototype属性,可以为其添加函数供实例访问,其它的就不清楚了,最近看了一些 JavaScript高级程序设计,终于揭开了其神秘面纱. 每个函数都有一个prototype属性,这个属性是指向一个对象的引用,这个对象称为原型对象,原型对象包含函数实例共享的方法和属性,也就是说将函数用作构造函数调用(使用new操作符调用)的时候,新创建的对象会从原型对象上继承属性和
-
浅析用prototype定义自己的方法
prototype 是在 IE 4 及其以后版本引入的一个针对于某一类的对象的方法,而且特殊的地方便在于:它是一个给类的对象添加方法的方法!这一点可能听起来会有点乱,别急,下面我便通过实例对这一特殊的方法作已下讲解: 首先,我们要先了解一下类的概念,JavaScript 本身是一种面向对象的语言,它所涉及的元素根据其属性的不同都依附于某一个特定的类.我们所常见的类包括:数组变量(Array).逻辑变量(Boolean).日期变量(Date).结构变量(Function).数值变量(Number)
-
String.prototype实现的一些javascript函数介绍
复制代码 代码如下: //String.prototype使用 //批量替换,比如:str.ReplaceAll([/a/g,/b/g,/c/g],["aaa","bbb","ccc"]) String.prototype.ReplaceAll=function (A,B) { var C=this; for(var i=0;i<A.length;i++) { C=C.replace(A[i]
-
常用简易JavaScript函数
//函数名:strByteLength //功能介绍:返回字符串的字节长度 //参数说明:str 要检查的字符串 //返回值:字符串长度 function strByteLength(str) { var i,sum; sum=0; for(i=0;i<str.length;i++) { if ((str.charCodeAt(i)>=0) & (str.charCodeAt(i)<=255)) sum=sum+1; else sum=sum+2; } return sum; }
-
细说javascript函数从函数的构成开始
javascript函数是一个比较奇怪的东西,接触一段时间你就会犯迷糊,弄不明白它到底是什么了.你是否会因为有的javascript函数没有名字而莫名其妙,是否会因为javascript函数的参数没有类型而抓狂,是否为javascript函数以表达式的形态存在而彻底崩溃.正是因为有了这些烦恼才让javascript函数值得我们寻味,我想从函数的构成来细说函数,这听起来像是一句废话,讲任何东西当然是从构成去谈,但是由于javascript函数你确实捉摸不了它的形态,因此这里我是从一个标准函数的构成
-
深入浅析javascript立即执行函数
javascript和其他编程语言相比比较随意,所以javascript代码中充满各种奇葩的写法,有时雾里看花; 当然,能理解各型各色的写法也是对javascript语言特性更进一步的深入理解. JavaScript 函数语法 函数就是包裹在花括号中的代码块,前面使用了关键词 function: function functionname() { 这里是要执行的代码 } 当调用该函数时,会执行函数内的代码. 可以在某事件发生时直接调用函数(比如当用户点击按钮时),并且可由 JavaScript
-
javaScript中push函数用法实例分析
本文实例讲述了javaScript中push函数用法.分享给大家供大家参考.具体分析如下: javaScript 中的 push 方法,将新元素添加到一个数组中,并返回数组的新长度值. arrayObj.push([item1 [item2 [. . . [itemN ]]]]) 参数 arrayObj,必选项.一个 Array 对象. item, item2,. . . itemN, 可选项.该 Array 的新元素. 说明 push
-
枚举JavaScript对象的函数
From: JavaEye.com 枚举JavaScript对象的函数: function iterator(obj) { for (var property in obj) { document.writeln("<p>" + property + " : " + obj[property] + "</p>"); } } 一个简单示例(test.js): function Employee () { this.
-
JavaScript中exec函数用法实例分析
本文实例讲述了JavaScript中exec函数用法.分享给大家供大家参考.具体如下: javaScript 中的 exec 函数,用正则表达式模式在字符串中运行查找,并返回包含该查找结果的一个数组. rgExp.exec(str) 参数: rgExp 必选项.包含正则表达式模式和可用标志的正则表达式对象. str 必选项.要在其中执行查找的 String 对象或字符串文字. 说明: 如果 exec 方法没有找到匹配,则它返回 null.如果它找到匹配,则 exec 方法返回一个数组,并
-
jquery下组织javascript代码(js函数化)
从神奇的"$"函数开始 "$"函数将在文档加载完成之后为一个指定的button 绑定事件,这些代码在单个网页中工作正常.但是如果我们还有其它的网页,我们将不得不重复这个过程. 复制代码 代码如下: <a href="javascript:;" id="sayHello">Say Hello</a> <script type="text/javascript"> //whe
-
javascript中动态函数用法实例分析
本文实例讲述了javascript中动态函数用法.分享给大家供大家参考.具体分析如下: <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>动态函数</title> <script
-
JavaScript常用验证函数实例汇总
本文实例汇总了JavaScript常用验证函数.分享给大家供大家参考.具体汇总如下: 一.字符串类验证 1. 长度限制 复制代码 代码如下: <script> function test() { if(document.a.b.value.length>50) { alert("不能超过50个字符!"); document.a.b.focus(); return false; } } </script> <form name=a onsubmit=&
-
javascript带回调函数的异步脚本载入方法实例分析
本文实例讲述了javascript带回调函数的异步脚本载入方法.分享给大家供大家参考.具体实现方法如下: var Loader = function () { } Loader.prototype = { require: function (scripts, callback) { this.loadCount = 0; this.totalRequired = scripts.length; this.callback = callback; for (var i = 0; i < scri
-
javascript中eval函数用法分析
本文实例分析了javascript中eval函数用法.分享给大家供大家参考.具体分析如下: eval()只有一个参数,如果传入的参数不是字符串,则直接返回这个参数.否则会将字符串当成js代码进行编译,如果编译失败则抛出语法错误(SyntaxError)异常.如果编译成功则开始执行这段代码,并返回字符串中的最后一个表达式或语句的值:如果最后一个表达式或语句没有值,则最终返回undefined.如果字符串抛出异常,则该异常将把该调用传递给eval(); eval()最为重要的是,它使用了调用它的变量
随机推荐
- javascript实现动态CSS换肤技术的脚本
- Angular实现下载安装包的功能代码分享
- asp.net TreeView递归循环子节点生成树形菜单实例
- Laravel 5.4中migrate报错: Specified key was too long error的解决
- 解决C# 截取当前程序窗口指定位置截图的实现方法
- 浅析一个MYSQL语法(在查询中使用count)的兼容性问题
- js+html5实现canvas绘制椭圆形图案的方法
- JavaScript中用getDate()方法返回指定日期的教程
- javaWeb项目部署到阿里云服务器步骤详解
- JavaEE微框架Spring Boot深入解读
- Android scrollTo和scrollBy方法使用解析
- 对Python信号处理模块signal详解
- JavaScript中的 new 命令
- java常用工具类 Date日期、Mail邮件工具类
- 详解express使用vue-router的history踩坑
- Android使用webView长按保存下载网络图片
- 详解使用mpvue开发github小程序总结
- C++性能剖析教程之循环展开
- Android Fragment实现列表和内容联动
- JS实现标签滚动切换效果