JavaScript 语句/重载/函数/闭包

1. if 语句
语法 :if (condition) statement1 else statement2
其中 condition 可以是任何表达式,计算的结果甚至不必是 Boolean 值,ECMAScript 会把它转换成 Boolean 值。这点在 for 语句和 while 语句中的条件判断处理时一样的。

2. break 语句和 continue 语句
break 语句可以立即退出循环,阻止再次反复执行任何代码,而 continue 语句只是退出当前循环,根据控制表达式还允许继续执行下一次循环。

3. with 语句
with 语句用于设置代码在特定对象中的作用域。with 语句是运行缓慢的代码段,尤其是在已设置了属性值时,应尽量避免使用。

4. 函数
在函数声明中不必声明返回类型,可以在函数体中返回任何类型。如果函数无明确的返回值,或调用了没有参数的 return 语句,那么它真正返回的值是 undefined。

5. 无重载
ECMAScript 总的函数不能重载(当让,重载不会出错),但是如果出现相同名字的函数的话,ECMAScript 将使用最后一个函数,并且所传的参数将方法参数从第一个开始对应。如:
function add(a,b){ return a + b;}
function add(a){return 10 + a;}
add(5,6) 返回的结果是 15。
因为使用了最后一个函数 add(a),并且传的参数 5 和 6 中, 5 和方法参数 a 对应,所以得到结果是 15。

6. arguments 对象
ECMAScript 函数虽然没有重载功能,但是 arguments 对象很好的弥补了这点。ECMAScript 声明函数时,不必声明参数序列,当调用该函数并传进参数时,所有这些参数会被自动封装到一个 arguments 的数组对象中,同时该对象又被传进函数里,arguments[0] 对应传进来的第一个参数,依次类推,在函数体内访问 arguments 对象,既可得到想要的参数。
[b]与其他程序设计语言不同, ECMAScript 不会验证传递给函数的参数个数是否等于函数定义的参数个数。开发者定义的的函数都可以接受任意个数的参数(根据 Netscape 的文档,最多能接受 25 个),而不会引发任何错误。任何遗漏的参数都会以 undefined 传递给函数,多余的参数将被忽略。[/b]

7. Function 类
ECMAScript 最令人感兴趣的可能莫过于函数实际上是功能完整的对象。Function 类可以表示开发者定义的任何函数。函数名只是指向函数对象的引用值,行为就像其他指针一样。甚至可以使两个变量指向同一个函数。所有函数都应该看作室 Function 类的实例。
注意,尽管可以用 Function 构造函数创建函数,但最好不要使用它,因为它定义的函数比用传统方式要慢得多。
因为函数时引用类型,所以它们也有属性和方法。

8. 闭包
所谓闭包,是指词法表示包括不必计算的变量的函数,也就是说,该函数[b]能使用函数外定义的变量[/b]。如:
var sMessage = "Hello World!";
function sayHelloWorld(){ alert(sMessage);}

var iBaseNum = 10;
function addNumbers(iNum1, iNum2){
function doAddition(){
return iNum1 + iNum2 + iBaseNum;
}
doAddition();
}
这里,函数 addNumbers() 包括函数 doAddition()(闭包)。内部函数诗歌闭包,因为它将获取外部函数的参数 iNum1 和 iNum2 以及全局变量 iBaseNum 的值。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值