ECMAScript理解ECMAScript的几只主要语句


置顶文章:《纯CSS打造银色MacBook Air(完整版本)》

上一篇:《ECMAScript之操作符重点小解》

笔者主页:myvin
博主QQ:851399101(点击QQ和博主发起临时会话)


描绘于前方

每当就同回中我们聊一聊ECMAScript中之几单第一语句switchfor-inlabel顶说话,加深我们对其的明白与认得。首先由不过广泛的游说自。

while和for

while和for是老大正规的口舌,无论是在JavaScript还是C还是其他编程语言中。而且于编程中我们比较常用的为是forfor为此起更灵敏,更简短,所以有些人恐怕就见面发出这样平等种误解:

forwhile更强大,能做到while做不交之局部政工。

其实我们多少想想whilefor言的语法应用,我们就是会意识:

while巡回做不至之for循环为举行不顶。

眼看是坐for巡回只是把while巡回有关的代码集中在了合伙而已,其实有若干时候,用while巡回比用for循环更简明。这也是融合各有利弊吧。

关于循环的其它一些,我们先行押一样段落代码:

for(i=0;i<5;i++){
    console.log(i);
}
console.log(i);

当循环外打印i,打印输出是5

可以看到,在循环里定义之变量在表为是好拜的。在局部言语中比如C,大括哀号定义之凡块级作用域,但是当ECMAScript中凡没有块级作用域这个概念的,所以在循环里定义之变量在外部为是可看的。

switch语句

于外编程语言中比如C,switch谈只能使数字,而以ECMAScript中,switch言辞可以以其他数据类型,像字符串、对象都是足以的。

此处来某些内需说明:switch话比较的当儿下的全等操作符,即===,所以'10'10匪等于,因为当开展全当较的上,并无出类型转换。

for-in语句

for-in语句子是一模一样种植精确性的迭代语句,可以就此来遍历对象的特性,当然为足以迭代数组的属性。下面分别因例子说明:

for-in遍历对象

  • ### window

优先遍历一个不同寻常之靶子window

for(var i in window){
    console.log(i);
}

见面打印出同样失误好丰富生丰富的特性列表,大家而自行查看,在是不一一罗列赘述。

  • ### 自定义对象

遍历自定义对象

var o={prop1:'value1', prop2:'value2', prop3:'value3'};
for (var i in o){
    console.log(i);
}

打印出prop1 prop2 prop3

  • ### 数组

遍历数组

var array1=[1,2,3,4];
for(var i in array){
    console.log(i);
}

打印输出1 2 3 4

with语句

with语句可以就此来限制作用域,即可以以代码的作用域设置及一个一定的对象吃。如下:

var hostname=location.hostname;
var url=location.href;

旋即片句分别获hostnameurl,因为它一起用location(同一个靶下的特性),所以我们得以将作用域限定在location中,即用with告诉句关联location对象。如下:

with(location){

    var hostname=hostname;
    var url=href;
}

用留意的凡:严格模式下采取with语句会有语法错误,同时,大量使with语句会导致性降低,同时为会见给调试带来一定之诸多不便,所以当支付应用程序的时候,尤其是付出大型应用程序的时节,并无建议使用with语句。

label语句

label晓句用来以代码中加标签,从而可以当后来来使其。一般情形下,加标签的语如果和for巡回等循环语句子配合来利用。

其的语法是:

label: statement

脚给闹代码详细来探望label签的用法。

1、先为来一致段落基本的代码:

var num=0;
for(var i=0;i<10;i++){
    for(var j=0;j<10;j++){
        if(i==5&&j==5){
            break;
        }
        num++;
    }
}
console.log(num);

说明:break跳出了远在中间的for循环,j余下的5不良巡回不再履行,所以打印的结果是95

2、接下我们以break换成continue

var num=0;
for(var i=0;i<10;i++){
    for(var j=0;j<10;j++){
        if(i==5&&j==5){
            break;
        }
        num++;
    }
}
console.log(num);

说明:continue跳出了此次巡回,就是说跳出了地处中间for循环的立刻同样次于巡回,所以打印的结果是99

3、接下去我们添加一个叫做也outerlabel签还分别看打印结果:

var num=0;
outer:
for(var i=0;i<10;i++){
    for(var j=0;j<10;j++){
        if(i==5&&j==5){
            break outer;
        }
        num++;
    }
}
console.log(num);

证实:加上了签后,用break超到了标签outer处在,就是说程序跳出了外循环,即程序执行到了i=5j=5每每停下实施,所以打印的结果是55

4、我们再度换成continue看看:

var num=0;
outer:
for(var i=0;i<10;i++){
    for(var j=0;j<10;j++){
        if(i==5&&j==5){
            continue outer;
        }
        num++;
    }
}
console.log(num);

证:这同一不善用的是continue,所以当程序执行到i=5j=5时常并没有跳出外循环,而一味是跳出了内循环,即剩下的5不良不予执行,所以打印的结果是95

位于一块儿马上几乎独显示有点有把混淆,多知道掌握就是见面哼广大。

小结

咱们学一门户东西不是为法而学,是也所以要模仿,说白了就是是为工作如仿照,所以只有理解地方的东西不是最为根本之,不是啊记而记,是为所以要记,能够娴熟运用在实践中才是咱们期待的。同时,做笔记是一个好好之惯,好记性不苟烂笔头,如果你以做,那么希望你坚持下去。


转载请记得说明作者及出处哦-.-
作者:myvin
初稿出处:http://www.cnblogs.com/myvin/p/4756504.html


下一篇:《关于ECMAScript函数参数的大半面明白》

置顶文章:《纯CSS打造银色MacBook Air(完整版本ECMAScript)》