JS中的语句

Js中的if,while,do-while,switch语句和C语言中的语法基本一致,这里就说一下for循环语句,with语句。

for语言也可以像C语言中的for循环使用,它还有另外一种用法,for (property in expression)

var dict = {'dd':2,'gfg':3}
for (key in dict) {
 alert(key) }

for的用法和python有点类似,但实际上差距还是挺大的,python根本不用这些括号,花括号之类的(还是Python简便哈)。

也可以遍历数组,字符串,但是返回的不是元素值,而是索引位置:

var e = ['dsd','sfs',11];
for (key in e) {
alert(key);
    }

这里就验证了一点,JS中一切数据类型都是对象。

JS中的for语句还有另外一个特殊用法,就是label语句。label:statement

该语句一般和for循环的break,continue一起使用。例子:

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

上述循环,如果是不加outbreak,循环结束后num的值为95;但加上outbreak之后,num的值变为55. 这是因为加上outbreak之后,break不仅跳出内层的循环,而且会跳出外层的循环,返回代码中特定的位置。

var num = 0; outbreak:for(var i=0;i<10;i++) { for(var j=0;j<10;j++) { if(i==5&&j==5) continue outbreak; num++; } } alert(num);

continue语句也是一样,加上outbreak之后,不仅退出内层的一次循环,而且整个退出内层的循环,直接跳到外部循环,因此返回的结果是95.

对于label语句还是要慎用!

with语句

with语句和Python中的with语句不相同。

首先说一下Python中的with语句,with语句用于简化try…except…finally的处理流程。with通过__enter__方法初始化,然后在__exit__中做善后以及处理异常。也就是说with语句中的对象必须要有__enter__和__exit__方法。用的最多的地方就是文件的处理。

再说JS中的with语句。with语句的作用是将代码的作用域设置到特定的一个对象中。

function Student(name) {
this.name = name
this.age = 25
}

var st = new Student('haibo')

with(st)
{
    alert(name);
    alert(age)
}

如果不用with语句,就会每次都用st.name,st.age这么访问。

由于with语句的滥用会导致性能下降,且给代码调试带来困难,因此不建议使用with语句。

--------EOF---------
微信分享/微信扫码阅读