博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JavaScript系列:ECMAScript函数
阅读量:6158 次
发布时间:2019-06-21

本文共 1411 字,大约阅读时间需要 4 分钟。

  函数是一组可以随时随地运行的语句,它们是ECMAScript的核心。函数由关键字function、函数名加一组参数以及置于括号中要执行的代码声明的。

  函数的基本语法如下:

function functionName (arg0, arg1, ... ,argN) {     statements      }

  如果函数无明确的返回值,或调用了没有参数的return语句,那么它真正返回的值是undefined。

  1、无重载

  ECMAScript中的函数不能重载。可以使用相同的名字在同一个作用域中定义两个函数,而不引发错误,但真正使用的是最后一个函数。

  2、arguments对象

  在函数代码中,使用特殊对象arguments,开发者无需明确指出参数名,就能访问它们。arguments[0]表示第一个参数(第一个参数位于位置0,第二个参数位于位置1,依此类推)。因此无需明确命名参数,就可以重写函数。

  使用arguments对象检测传递给函数的参数个数,引用属性arguments.length。

  使用arguments对象判断传递给函数的参数个数,即可模拟函数重载。

function doAdd () {    if (arguments.length == 1) {        alert(arguments[0] + 10);    } else if (arguments.length == 2) {        alert(arguments[0] + arguments[1]);    }}

  3、Function类

  Function类可以表示开发者定义的任何函数。用Function类直接创建函数的语法如下:

var function_name = new Function (argument1, argument2, argument3,  ... , argumentN, function_body);

  尽管可用Function构造函数创建函数,但最好不要使用它,用它定义函数比用传统方式要慢得多。不过,所有函数都应看作是Function类的实例。

  因为函数是引用类型,所有它们也有属性和方法。ECMAScript定义了属性length声明了函数期望的参数个数。

function doAdd(iNum) {    alert(iNum + 10);}alert(doAdd.length); // outputs "1"

  ECMAScript函数可以接受任意多个参数(最多25个),属性length只是为了查看默认情况下预期参数个数提供了一种便捷的方式。

  Function对象也有与所有对象共享的标准valueOf()方法和toString()方法。这两个方法返回的都是函数的源代码,在调试时尤其起作用。

  4、闭包

  闭包是指词法表示包括不必计算的变量的函数。即该函数可以使用函数外定义的变量。

  在ECMAScript中使用全局变量是一个简单的闭包实例。

var message = "Hello World";function() {    alert(message);}

转载于:https://www.cnblogs.com/libingql/archive/2012/09/30/2709301.html

你可能感兴趣的文章
Bootstrap导航栏
查看>>
连续性3
查看>>
gulp-sass
查看>>
SSH配置启动后Could not instantiate bean class [org.hibernate.cfg.AnnotationConfiguration
查看>>
ASP.NET MVC 4使用PagedList.Mvc分页
查看>>
linux bin文件制作
查看>>
openNebula images
查看>>
java调用matlab绘图
查看>>
装了Ubuntu后将默认启动项修改为windows
查看>>
PowerUI
查看>>
Python 爬虫十六式 - 第六式:JQuery的假兄弟-pyquery
查看>>
TableView上的下拉刷新及抓获本地时间。
查看>>
es6之块级作用域
查看>>
为什么每个请求都要有用户名密码呢,那不是每次都要查询一下了,token,表示这个用户已经验证通过了,在token有效期内,只需要判断token是否有效就可以了...
查看>>
Testng生成的测试报告乱码解决办法
查看>>
编码格式(乱码)
查看>>
C++11 新特性简介
查看>>
解决Debian-7.1下Chrome浏览器字体难看的问题
查看>>
ubuntu 配置ftp server(zz)
查看>>
VS2015和QTcreator冲突解决办法
查看>>