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语句。
微信分享/微信扫码阅读