五.语句
1.条件语句——if(conditional statment)
条件语句用的最多的是if语句当情况为true时,触发事件A,否则触发事件B。
if(情况1){操作1}esle if(情况2){操作2}...}else{操作n};
?:(三目)是if..else的简写。
条件?:语句1:语句2
a%2==0?:alert('偶数'):alert('奇数');
示例:在这个语句中,输出“世界完了”不可能生效。因为上述条件的值永远是false。
if (1>2) {
alert("世界完了!")
} else {
alert("天塌不下来的。")
};
其实可以这样写:if (1>2) alert(“世界完了!”)
——但是这样可读性不强,故推荐使用花括号。
(1)条件语句中常用的的比较操作符
大于(>),小于(<),大于等于(>=),小于等于(<=),等于(==),不等于(!=)
单个等于号在js中是赋值操作。然而==也不表示完全相等,因为这里不会比较变量类型。欲完全相等,应使用“===”,同理,包含数据类型项目的比较中,不等号应为“!===”。
(2)逻辑操作符
逻辑操作符的对象是布尔值。
逻辑操作
“与”(&&),“或”(||),“非”(!)
示例:
f (!(num>5||num<5)) {alert(“num=5”)};
2.循环语句
(1)while循环
语法和if语句几乎一样。只是语境不同。while可反复执行但if只能执行一次。但是,while语句可能也不被执行。
声明循环控制器
while(情况){事件;控制循环事件}
事件内部必须发生控制循环条件的事件。示例:
var count=1;
while (count<11) {alert(count);count++};
(2)do...while循环:典型的先做,然后测试的循环语句。让事件至少触发一次。
声明循环控制器
do {事件} while (情况);
var count=1;
do{alert(count);count++;} while(count<1);
此事件至少执行一次。再进行判断。如果while的条件为count<11,操作结果和简单while语句完全一样。
(3)for循环
js中用得最多的语句。写得更加可读。但是while循环不能做的,for循环同样不能做。注意小括号内最后一句不加分号。本语句中的事件至少执行0次。
for(循环控制器声明赋值;情况;循环条件控制事件){事件};
for(var count=1;count<11;count++){alert(count);};
再例如:
var beatles=["Joln","Paul","George","Ringo"];
//声明数组披头四含有四位成员
for(var count=0;count<beatles.length;count++){alert(beatles[count]);};
//当计数器小于数组beatles的元素个数时,执行输出成员名字。同时计数器+1.
(4)for-in
for-in用来遍历对象的属性。标准格式为:
for (属性 in 对象){操作}
举个例子:
for (var propName in window){
document.write(propName)
}
这里用for-in循环遍历显示了window对象的所有属性。显示出来的属性是乱序的。但是请注意:如果对象的属性含有null或undefined值,循环会被解析终止。
3.程序控制相关语句
(1)label
类似HTML-css,label语句可以在代码中添加标签。如:
start:alert('a');
把alert('a');标记为start,便于日后break或者continue引用。加标记的语句一般都要配合for等循环语句使用。
(2)break和continue语句
break:立即停止循环,强制执行循环后面的语句。
continue也是终止循环,但又马上从该循环的头部开始执行。
var num=0
for (var i = 0; i < 10; i++) {
if(1%5=0){
break
}
num ++
};
alert(num)
该循环次数为5的倍数时,退出。如果把代码中的break改为continue,循环会跳过第五次弹出和第十次弹出。
(3)with语句
将一个代码的作用域设置到一个特定的对象中。
with(变量名){语句}
with代码块的变量都是局部变量,语句省略变量名,视同在变量内部定义东西。但是with语句会导致性能下降。不推荐使用。
(4) switch语句
switch只要用来简化if语句。一般来说每个case都要加break,如果刻意不加(多个条件复合时),最好用注释说明。而值不一定是确定的,可以是变量或者表达式。
switch(变量){
case 值1
...(语句)
break
.....
defaut:
...(语句)//如果全部没有碰上,则执行defaut的语句
}
defaut意思是当所有情况都不符合时,设置的操作方式。