[JavaScript高级程序设计]第3章 基本概念(3) -- 语句和函数

目录

语句

1.for-in语句

2.label语句

3.break和continue语句

4.with语句

函数

1.理解参数

2.没有重载


语句

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中若定义了两个名字相同的函数,则该名字只属于后定义的函数。

猜你喜欢

转载自blog.csdn.net/liwen_ye/article/details/81190900