JavaScript学习日志——流程控制
JavaScript提供了三种控制流来控制程序的流程:顺序结构、条件分支和循环语句。
目录
if…else语句
//if语句
document.write("if语句:"+"<br>");
if(array[0]==1){
document.write("array[0]="+1+"<br>");
}
else{
document.write("array[0]!="+1+"<br>");
}
var a=true;
if(a){
document.write("a=true"+"<br>");
}
document.writeln(""+"<br>");
switch case语句
- 编写代码时,应将出现几率最大的几个条件放在前面,增加执行效率。
- default语句定义switch的默认情况,并不要求一定有,也不要求要放在最后。
- 当语句中省略break时,将继续执行下一个case,而不是退出。
//switch case语句
document.write("switch case语句:"+"<br>");
var date=new Date();
var day=date.getDay();
switch(day){
case 1:{
document.write("今天是星期一");
break;
}
case 2:{
document.write("今天是星期二");
break;
}
case 3:{
document.write("今天是星期三");
break;
}
case 4:{
document.write("今天是星期四");
break;
}
case 5:{
document.write("今天是星期五");
break;
}
default:{
document.write("今天是周末");
break;
}
}
document.write("<br>");
document.writeln(""+"<br>");
do…while循环
//do while语句
document.write("do while语句:"+"<br>");
var i=1;
do{
document.write("这是第"+i+"次显示"+"<br>");
i++;
}
while(i<=10);
document.writeln(""+"<br>");
for循环
//普通for循环遍历
document.writeln("普通for循环遍历:"+"<br>");
for(var index=0;index<10;index++){
document.writeln(array[index]+"<br>");
}
document.writeln(""+"<br>");
for…in循环
- for…in语句用来迭代(或遍历)对象的属性或数组的元素
- 不能迭代对象的方法
- 不能迭代静态成员
//for in循环遍历
document.writeln("for in循环遍历:"+"<br>");
for(var index in myObject){
document.writeln(index+": "+myObject[index]+"<br>");
}
document.writeln(""+"<br>");
//需要换行则在参数中加入"<br>"实现换行
//for in循环遍历结合typeof()
document.writeln("结合typeof():"+"<br>");
for(var index in myObject){
if(typeof(myObject[index])=="string"){
document.write(index+": "+myObject[index]+"<br>");
}
}
document.writeln(""+"<br>");
//此时typeof()返回string值,故等号后为"string"
有关for, for… in, for each… in的比较
- 遍历普通数组,建议使用原生的遍历方法for,不要贪图方便,因为for in 和for each in均存在浏览器的兼容问题,不能保证它们对数组的遍历顺序(如果对顺序的不作要求的话,可以使用for in,但本人不建议)
- 遍历对象,由于for没办法提供理想的遍历,因而只能选择其他方法。这里建议使用for in,因为for in比for each 更具优势,for in能获取索引和属性值,而for each只能获取属性值,而且for each在很多低版本的浏览器是不支持。
continue、break语句
- 循环中使用break语句,将跳出此次循环语句
- switch case中使用break语句,将跳出此次选择语句
- continue语句用来跳出当前执行的循环,回到循环的条件判断处
//continue,break语句
document.write("continue,break语句:"+"<br>");
var k=1;
while(k<4){
if(k==1){
document.write("k="+k+" 通过continue跳出,返回条件测试处<br>");
k++;
continue;
}
if(k==2){
document.write("k="+k+" 通过break跳出,跳至循环外<br>");
k++;
break;
}
else{
document.write("k="+k+"<br>");
k++;
}
}
document.write("<br>");
with语句
- with语句可以方便地用来引用某个特定对象的方法和属性,使用户不必重复书写对象名称。
//with语句
document.write("with语句:"+"<br>");
var rightNow=new Date();
with(rightNow){
document.write("year:"+getFullYear()+"<br>");
document.write("month:"+getMonth()+"<br>");
document.write("day:"+getDay()+"<br>");
}
document.write("<br>");
总结
- 第一次在CSDN里写博客,或者说更像是一个学习记录。不久前立志学习Web前端的知识,并且将来想在此领域谋得一份工作,展开自己的职业生涯,今天算是走下了第一步。之前课堂中学习过HTML,CSS以及JavaScript的一些知识,过去半年,脑子中早已所剩无几,所以决定重新开始,更细致地自学一次。
- 今天看的这些内容,在之前学习过的C、C++、Java、C#、MATLAB中都有涉猎(天哪,我居然学过这么多编程语言),但在JavaScript中,我还是感受到了一些不同。最基本的变量类型var,颠覆了我过去脑海中存留的那些编程习惯。另外,我又对break,continue这两个之前一直是不求甚解的兄弟较深入地研究了一下,总算是分辨了出来。
- 学习资料中还提到了标签语句、yield语句、let语句,我都还尚未成功实现,查资料后,大概是因为浏览器不兼容的缘故吧,接下来还是继续查查资料,尽快结局遗留问题!
- 希望我能像三年来坚持乐团训练一样坚持学习知识,记录心得!加油!
- 去晚训了。。。