switch语句
语法格式:
switch (expression) {
case 常量1:
语句;
break;
case 常量2:
语句;
break;
case 常量3:
语句;
break;
…
case 常量n:
语句;
break;
default:
语句;
break;
}
break可以省略,如果省略,代码会继续执行下一个case
switch 语句在比较值时使用的是全等操作符, 因此不会发生类型转换(例如,字符串'10' 不等于数值 10)
示例代码
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>10.switch-case语句</title>
</head>
<body>
<script>
/*
* switch-case语法:
* switch(某个具体位置){
* case值1:
* 判断的值和值1相等,就执行代码块1;
* break;
* case值2:
* 判断的值和值2相等,就执行代码块2;
* break;
* ...
* default:都不相等的代码块;
* }
*
* break:跳出整个语句。
* */
//1、获取一个人成绩的级别:A=>90-100分;B=>80-89分;C=>60-79分;A=>0-59分
var jiBie = "B";
switch(jiBie){
case"A":
console.log("该学生的分数在90-100分之间");
break;
case"B":
console.log("该学生的分数在80-89分之间");
break;
case"C":
console.log("该学生的分数在60-79分之间");
break;
default:
console.log("该学生的分数在0-59分之间");
}
//比较值的时候,使用的是严格模式;比较时,break不可省略
var str = "10";
switch(str){
case"10":
console.log("字符串的10");
break;
case 10:
console.log("数字类型的10");
break;
}
//作业:根据月份显示对应的天数
/*
* 总结:
* ①if语句:只有一个分支;
* ②if-else语句:两个分支;
* ③if-else if...-else语句:多个分支
* 这三个最终只会执行一个
* ④switch-case语句:多个分支,只会执行一个
* ⑤一般对范围的判断,用if系列;
* 对具体的值判断,用switch。
* */
</script>
</body>
</html>
布尔类型的隐式转换
流程控制语句会把后面的值隐式转换成布尔类型
转换为true 非空字符串 非0数字 true 任何对象
转换成false 空字符串 0 false null undefined
// 结果是什么?
var a = !!'123';
案例:
var message;
// 会自动把message转换成false
if (message) {
// todo...
}