目录
语句
1.for-in语句
用来枚举对象的属性
2.label语句
在代码中添加标签,以便将来使用
3.break和continue语句
break语句:立即退出循环,强制继续执行后面的语句
continue语句:立即退出循环,但退出后会从循环的顶部继续执行
以下为与label结合例子
var num = 0;
outermost:
for(var i=0;i<10;i++){
for(var j=0;j<10;j++){
if(i===5 && j===5){
break outermost;
}
num++;
}
}
alert(num); //55
var num = 0;
outermost:
for(var i=0;i<10;i++){
for(var j=0;j<10;j++){
if(i===5 && j===5){
continue outermost;
}
num++;
}
}
alert(num); //95
4.with语句
将代码的作用域设置到一个特定的对象中。with的语法:
with (expression) statement;
定义with语句的主要目的是为了简化多次编写同一个对象的工作。
var qs = location.search.substring(1);
var hostName = location.hostname;
var url = location.href;
with(location){
var qs = search.substring(1);
var hostName = hostname;
var url = href;
}
严格模式下不允许使用
函数
函数会在执行完return语句之后立刻退出。并且return语句可以不带有任何返回值,在这种情况下,函数在停止执行后返回undefined。
1.理解参数
ECMAScript函数不介意传递进来的参数个数,即使超过了定义的参数数。因为ECMAScript中的参数在内部使用一个数组来表示的,函数接收到的始终是这个数组。实际上,在函数内部可以通过arguments对象来访问这个参数数组,从而获取传递给函数的每一个参数。
注:arguments对象只是与数组类似,他并不是Array的实例。要将其转换成数组,则Array.prototype.slice.call(arguments)。
可以使用方括号语法访问arguments的每一个元素,使用length属性确定传进来多少个参数。
ECMAScript函数一个重要的特点:命名的参数只提供便利,但不是必需的。
arguments中的值与对应明明参数的值保持同步。
function doAdd(num1,num2){
arguments[1]=10;
alert(arguments[0]+num2);
}
函数中修改了arguments[1]的值,则num2的值也变成10,但这两个值的内存空间是独立的。若调用函数时只传入了一个值,则arguments[1]的值不会反映到明明参数中,此时num2的值为undefined。(严格模式中无效)
2.没有重载
ECMAScript中若定义了两个名字相同的函数,则该名字只属于后定义的函数。