if(...)
语句计算括号里的条件表达式,如果计算结果是 true
,就会执行对应的代码块。
let year = prompt('请输入年份');
if (year == 2015) alert( 'You are right!' );
if (…)
语句会计算圆括号内的表达式,并将计算结果转换为布尔型。
0
、空字符串 ""
、null
、undefined
和 NaN
都会被转换成 false
。因为它们被称为“假值”。true
,所以它们被称为“真值”。if
语句有时会包含一个可选的 “else” 块。如果判断条件不成立,就会执行它内部的代码。
let year = prompt('请输入年份');
if (year == 2015) {
alert( 'You guessed it right!' );
} else {
alert( 'How can you be so wrong?' ); // 2015 以外的任何值
}
根据不同条件执行语句的关键技术是if...else...let
// let age = prompt('请输入年龄')
// //如果
// if (age >= 13 && age <= 19) {
// document.write('青少年
')
// } else {
// document.write('人类
')
// }
案例
1.判断闰年
1.能被4整除但不能被100整除是闰年
2.能被400整除是闰年
3.其他全部是平年
let year = prompt("请输入年份")
// console.log(year % 4 == 0);//true 能
// console.log(year % 100 != 0);//true 能
// console.log(year % 400 == 0);//true 能
if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0) {
document.write('闰年
')
} else {
document.write('平年
')
}
2.判断是不是数字
let str = prompt('请输入')
str *= 1 //隐式数据类型转换
console.log(str);
//if(str){ //0、NaN都是false 但θ是数字
if (!isNaN(str)) {
console.log("是数字");
} else {
console.log("不是数字")
}
有时我们需要测试一个数据的包含几个条件。我们可以通过使用 else if
子句实现。
1.根据年龄判断在哪个年龄群体
//年龄: 0-3婴幼儿 3-12小童 13-19青少年 19-100青壮年 100+ 老年人
案例
let age = prompt('请输入年龄')
if (age >= 0 && age <= 3) {
console.log('婴幼儿');
} else if (age <= 12) {
console.log('小童');
} else if (age <= 19) {
console.log('青少年');
} else if (age <= 100) {
console.log('青壮年');
} else {
console.log('老年人');
}
2.根据成绩判断其学习水平
/*0-60 不及格
60-70 及格
70-80 良
80-90优秀
90-100 及其优秀
其他 不合法分数*/
let score = prompt('请输入分数')
if (score >= 0 && score < 60) {
console.log("不及格");
} else if (score >= 60 && score < 70) {
console.log("及格");
} else if (score >= 70 && score < 80) {
console.log("良");
} else if (score >= 80 && score < 90) {
console.log("优秀");
} else if (score >= 90 && score <= 100) {
console.log("极其优秀");
} else {
console.log("不合法分数");
}
这个运算符通过问号 ?
表示。有时它被称为三元运算符,被称为“三元”是因为该运算符中有三个操作数。实际上它是 JavaScript 中唯一一个有这么多操作数的运算符。
// 元
let a = 0
a++ //一元运算
let b = 100
a + b //二元运算
// 三元
a > 0 ? console.log('A') : console.log("B");
let age = prompt('请输入年龄')
// console.log(age >= 18 ? "成年人" : "未成年");
console.log(age >= 18 ? age >= 80 ? "老年人" : "成年人" : "未成年");//非常不推荐,太难读
let num = prompt('请输入一个0-6的数字')
// 判断星期几
switch (num * 1) {//隐式转换成number数字
case 0:
console.log('星期日');
break;
case 1:
console.log('星期一');
break;
case 2:
console.log('星期二');
break;
case 3:
console.log('星期三');
break;
case 4:
console.log('星期四');
break;
case 5:
console.log('星期五');
break;
case 6:
console.log('星期六');
break;
default:
console.log('非法数字,请刷新重新输入');
break;
}
num
值与第一个 case
是否严格相等,然后比较第二个 case
以此类推。switch
语句就执行相应 case
下的代码块,直到遇到最靠近的 break
语句(或者直到 switch
语句末尾)。default
代码块(如果 default
存在)。在 switch 语句运行过程中,如果没有 break 语句。比较 num 值与第n个 case 严格相等之后,switch 语句就执行相应 case 下的代码块,直到 switch 语句结束,中间不会停止。