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; // 50005000
6
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; // 2500
7
1
var x = 0;
2
var n = 99;
3
while (n > 0) {
4
x = x + n;
5
n = n - 2;
6
}
7
x; // 2500
var n = 0;
do {
n = n + 1;
} while (n < 100);
n; // 100
1
var n = 0;
2
do {
3
n = n + 1;
4
} while (n < 100);
5
n; // 100