JavaScript:函数的定义和调用
2013-06-06 00:49
309 查看
函数是定义一次但却可以调用或执行任意多次的一段JavaScript代码。函数可以有参数,函数常常使用这些参数来计算一个返回值,这个值也称为函数调用表达式的值。当一个函数在一个对象上被调用的时候,这个函数就叫作方法。注意定义函数时可以使用个数可变的参数,而且函数既可以有return语句,也可以没有return语句。return语句能使函数停止运行,并且把表达式的值返回给函数调用者。如果return语句没有一个相关的表达式,它会返回undefined。如果函数不包含return语句,它就只执行函数体中的每条语句,然后返回给调用者undefined。
因为JavaScript是一种宽松类型的语言,所以不能给函数的参数指定一个数据类型,而且JavaScript也不会检测传递过来的数据是不是那个函数所要求的类型。如果参数的数据类型很重要,那么可以用运算符typeof对它进行检测。JavaScript也不会检测传递给它的参数个数是否正确。如果传递的参数比函数需要的个数多,那么多余的值会被忽略掉。如果传递的参数比函数需要的个数少,那么所忽略的几个参数就会被赋予undefined值。
函数直接量:
JavaScript允许用函数直接量来定义函数。函数直接量是一个表达式,它可以定义匿名函数。下面的两行代码分别使用function语句和函数直接量定义了两个基本上相同的函数。
由于函数直接量都是由JavaScript的表达式创建的,而不是由语句创建的,所以使用它们的方式也就更加灵活,尤其适用于那些只使用一次而且无需命名的函数。例如,一个使用函数直接量表达式指定的函数可以存储在一个变量中,传递给其他的函数,甚至被直接调用:
函数命名:
任何合法的JavaScript标识符都可以用作一个函数名。要尽量选择描述性强而且精炼的函数名。函数名习惯上以小写字母打头,当一个名字包含多个单词的时候,可以采用下划线法或者驼峰法命名。如like_this()
和 likeThis()。
因为JavaScript是一种宽松类型的语言,所以不能给函数的参数指定一个数据类型,而且JavaScript也不会检测传递过来的数据是不是那个函数所要求的类型。如果参数的数据类型很重要,那么可以用运算符typeof对它进行检测。JavaScript也不会检测传递给它的参数个数是否正确。如果传递的参数比函数需要的个数多,那么多余的值会被忽略掉。如果传递的参数比函数需要的个数少,那么所忽略的几个参数就会被赋予undefined值。
函数直接量:
JavaScript允许用函数直接量来定义函数。函数直接量是一个表达式,它可以定义匿名函数。下面的两行代码分别使用function语句和函数直接量定义了两个基本上相同的函数。
function f(x){return x*x} //function statement var f=function(x){return x*x} //function literal虽然函数直接量创建的是未命名函数,但是它的语法也规定它可以指定函数名,这在编写调用自身的递归函数时非常有用。例如:
var f=function fact(x){if(x<=1) return 1;else return x*fact(x-1)}上面的代码定义了一个未命名函数,并把对它的引用存储在变量f中。它并没有真正把对函数的引用存储到名为fact的变量中,而只是允许函数体用这个名字来引用自身。
由于函数直接量都是由JavaScript的表达式创建的,而不是由语句创建的,所以使用它们的方式也就更加灵活,尤其适用于那些只使用一次而且无需命名的函数。例如,一个使用函数直接量表达式指定的函数可以存储在一个变量中,传递给其他的函数,甚至被直接调用:
f[0]=function(x){return x*x;}; //define a function and store it a.sort(function(a,b){return a-b;}); //define a function;pass it to another var tensquared=(function(x){return x*x;}) (10); //define and invoke
函数命名:
任何合法的JavaScript标识符都可以用作一个函数名。要尽量选择描述性强而且精炼的函数名。函数名习惯上以小写字母打头,当一个名字包含多个单词的时候,可以采用下划线法或者驼峰法命名。如like_this()
和 likeThis()。
相关文章推荐
- JavaScript-函数(一)函数定义和调用
- 09-javascript 函数定义和调用
- Javascript读书笔记:函数定义和函数调用
- Android中Webview使用javascript调用事先定义好的Java函数
- javascript 内部函数的定义及调用
- JavaScript 函数的定义-调用、注意事项
- 调用javascript遇到奇怪的“函数未定义”问题
- xsl 文件如何定义 Javascript 函数并且调用
- JavaScript作用域、上下文环境、函数对象的定义与调用、匿名函数的定义与调用、闭包
- javascript通过ajaxpro 调用后台C#函数,js报错 ‘XXX’ 未定义
- 3.定义一个接受两个数字的方法,返回两个数字的和 →(javascript代返回值的函数的申明和调用)
- JavaScript 函数(一)- 函数的定义及调用
- javascript、jQuery函数定义和调用方法
- Javascript - 定义函数直接调用
- 【JavaScript】(4)普通函数、动态函数定义格式,调用方式,注意的详细细节
- JavaScript学习笔记第一天——定义函数以及参数调用
- JavaScript 函数的定义-调用、注意事项
- (九)JavaScript之【JS函数(定义、参数、调用、【闭包】、call(),apply())】[较深,胆小勿进]
- JavaScript学习笔记6-函数的定义和调用
- JavaScript学习笔记八:函数定义和调用