首页 > 代码库 > 01快速入门-03-条件判断和循环

01快速入门-03-条件判断和循环

1、if else 条件判断

和Java类似,看个例子说明基本语法:
  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. }
当然,上面的代码也等同于:
  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就一样一样的:
  1. var x = 0;
  2. var i;
  3. for (i=1; i<=10000; i++) {
  4. x = x + i;
  5. }
  6. x; // 50005000
遍历数组:
  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 可以把一个对象的所有属性依次循环出来,有了属性自然也就可以获得对应的值了:
  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()来实现:
  1. for (var key in o) {
  2. if (o.hasOwnProperty(key)) {
  3. alert(key); // ‘name‘, ‘age‘, ‘city‘
  4. }
  5. }

Array也是对象,每个元素的索引视为对象的属性,所以可以方便得遍历出所有索引(得到的索引是String而不是Number):
  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 循环

直接上示例代码:
  1. var x = 0;
  2. var n = 99;
  3. while (n > 0) {
  4. x = x + n;
  5. n = n - 2;
  6. }
  7. x; // 2500
  1. var n = 0;
  2. do {
  3. n = n + 1;
  4. } while (n < 100);
  5. n; // 100

01快速入门-03-条件判断和循环