1、if else 条件判断
和Java类似,看个例子说明基本语法:
var age = 3;
if (age >= 18) {
alert('adult');
} else if (age >= 6) {
alert('teenager');
} else {
alert('kid');
}8
1
var age = 3; 2
if (age >= 18) {3
alert('adult');4
} else if (age >= 6) {5
alert('teenager');6
} else {7
alert('kid');8
}当然,上面的代码也等同于:
var age = 3;
if (age >= 18) {
alert('adult');
} else {
if (age >= 6) {
alert('teenager');
} else {
alert('kid');
}
}10
1
var age = 3;2
if (age >= 18) {3
alert('adult');4
} else {5
if (age >= 6) {6
alert('teenager');7
} else {8
alert('kid');9
}10
}语句块只包含一条语句,那么花括号可以省略,可是强烈建议千万不要这么做,很容易因为不小心就犯毛病。
如果 if 的条件判断语句结果不是布尔类型的,那么 null、undefined、0、NaN 和 空字符串 “” 视为 false,其余视为true,所以如果表达式是一个计算结果,只要不是0,负数也可以,那么结果就等同于 true 。
2、循环
2.1 for 循环
例子说明,其实和Java就一样一样的:
var x = 0;
var i;
for (i=1; i<=10000; i++) {
x = x + i;
}
x; // 500050006
1
var x = 0;2
var i;3
for (i=1; i<=10000; i++) {4
x = x + i;5
}6
x; // 50005000遍历数组:
var arr = ['Apple', 'Google', 'Microsoft'];
var i, x;
for (i=0; i<arr.length; i++) {
x = arr[i];
alert(x);
}6
1
var arr = ['Apple', 'Google', 'Microsoft'];2
var i, x;3
for (i=0; i<arr.length; i++) {4
x = arr[i];5
alert(x);6
}2.2 for in 遍历
这个是一个类似于Java中的 for each 增强for循环,不过Java中多用于集合的遍历(如List),而JS中的 for in 可以把一个对象的所有属性依次循环出来(包括继承的属性),有了属性自然也就可以获得对应的值了:
var o = {
name: 'Jack',
age: 20,
city: 'Beijing'
};
for (var key in o) {
alert(key); // 'name', 'age', 'city'
}8
1
var o = {2
name: 'Jack',3
age: 20,4
city: 'Beijing'5
};6
for (var key in o) {7
alert(key); // 'name', 'age', 'city'8
}要过滤掉对象继承的属性,用hasOwnProperty()来实现:
for (var key in o) {
if (o.hasOwnProperty(key)) {
alert(key); // 'name', 'age', 'city'
}
}5
1
for (var key in o) {2
if (o.hasOwnProperty(key)) {3
alert(key); // 'name', 'age', 'city'4
}5
}Array也是对象,每个元素的索引视为对象的属性,所以可以方便得遍历出所有索引(得到的索引是String而不是Number):
var a = ['A', 'B', 'C'];
for (var i in a) {
alert(i); // '0', '1', '2'
alert(a[i]); // 'A', 'B', 'C'
}5
1
var a = ['A', 'B', 'C'];2
for (var i in a) {3
alert(i); // '0', '1', '2'4
alert(a[i]); // 'A', 'B', 'C'5
}2.3 while 和 do while 循环
直接上示例代码:
var x = 0;
var n = 99;
while (n > 0) {
x = x + n;
n = n - 2;
}
x; // 25007
1
var x = 0;2
var n = 99;3
while (n > 0) {4
x = x + n;5
n = n - 2;6
}7
x; // 2500var n = 0;
do {
n = n + 1;
} while (n < 100);
n; // 1001
var n = 0;2
do {3
n = n + 1;4
} while (n < 100);5
n; // 100