一、条件判断if () {...} else {...}
1、JavaScript使用if () { ... } else { ... }来进行条件判断。例如,根据年龄显示不同内容,可以用if语句实现如下:
var age =20;
if (age >=18) { //如果age >=18为true,则执行if语句块
alert('adult');
} else { //否则执行else语句块
alert('teenager');
}
其中else语句是可选的。如果语句块只包含一条语句,那么可以省略{},但是有风险,建议还是加上
2、多行条件判断:如果还要更细致地判断条件,可以使用多个if...else...的组合:
varage =3;
if (age >=18) {
alert('adult');
} else if (age >=6) {
alert('teenager');
} else {
alert('kid');
}
练习
小明身高1.75,体重80.5kg。请根据BMI公式(体重除以身高的平方)帮小明计算他的BMI指数,并根据BMI指数:
低于18.5:过轻
18.5-25:正常
25-28:过重
28-32:肥胖
高于32:严重肥胖
'use strict';
var height = parseFloat(prompt('请输入身高(m):'));
var weight = parseFloat(prompt('请输入体重(kg):'));
var bmi = weight/(height**2);
if (bmi <=18.5) {
alert('过轻');
} else if (bmi<=25) {
alert('正常');
} else if (bmi<=28) {
alert('过重');
} else if (bmi<=32) {
alert('肥胖');
} else {
alert('严重肥胖');
}
二、循环&遍历
1、求和
var x=0; //即和
var i; //循环的数字
if (i=1;i<=100;i++) {
x=x+i;
}
x; //5050
让我们来分析一下for循环的控制条件:
i=1 这是初始条件,将变量i置为1;
i<=10000 这是判断条件,满足时就继续循环,不满足就退出循环;
i++ 这是每次循环后的递增条件,由于每次循环后变量i都会加1,因此它终将在若干次循环后不满足判断条件i<=10000而退出循环。
2、遍历
var arr = ['Apple', 'Google', 'Microsoft'];
var i, x;
for (i=0; i<arr.length;i++) {
x=arr[i];
console.log(x);
}
3、for循环的3个条件都是可以省略的,如果没有退出循环的判断条件,就必须使用break语句退出循环,否则就是死循环:
var x =0;
for(;;) { //将无限循环下去
if(x >100) {
break; //通过if判断来退出循环
}
x ++;
}
4、for循环的一个变体是for ... in循环,它可以把一个对象的所有属性依次循环出来:
var o = {
name:'Jack',
age:20,
city:'Beijing'
};
for(var key in o ) {
console.log(key); // 'name', 'age', 'city'
}
5、由于Array也是对象,而它的每个元素的索引被视为对象的属性,因此,for ... in循环可以直接循环出Array的索引,结果为string,而非Number
var a = ['A','B','C'];
for(var i in a) {
console.log(i); // '0', '1', '2'
console.log(a[i]); // 'A', 'B', 'C'
}
6、while循环只有一个判断条件,条件满足,就不断循环,条件不满足时则退出循环。比如我们要计算100以内所有奇数之和,可以用while循环实现:
var x=0;
var n=99;
while (n>0) {
x=x+n;
n=n-2;
}
x; //2500