JS 的分支
JavaScript 代码是从上至下逐行执行,分支就是可以跳过这个规则
if 分支
if(判断条件) {
判断成功之后的执行的语句
}
// 判断条件必须为turly变量(必须是成功的)
// 获取用户数据的分数 如果 大于60 则输出 棒棒的
var score = prompt("请输出分数",60);
score = score * 1 //转化为Number类型
if(score >= 60) {
alert("棒棒的");
}
if else 分支
if(判断条件) {
语句1;
}else {
语句2;
}
// 意义:如果判断条件成功,则执行语句1,否则执行语句2
if(score >= 60) {
alert("很好哦")
}else {
alert("加油啊")
}
三目运算
判断条件 ? 语句1 : 语句2;
// 意义: 判断条件成功(即为truly变量)则执行语句1,否则执行语句2
score >= 60 ? alert("很好哦") : alert("加油啊")
多重分支
if(判断条件1) {
语句1;
}else if(判断条件2) {
语句2;
}else if(判断条件3) {
语句3;
}else if ....
....
// 条件1成立,执行语句1;
// 条件1不成立,判断条件2,条件2成立,执行语句2,
// 条件2不成立,判断条件3,条件3成立,执行语句3,
// 。。。。。
if(score > 90) {
alert("优秀")
}else if(score > 80) {
alert("良好")
}else if(score >= 60) {
alert("及格")
}else {
alert("不及格")
}
switch
var index = window.prompt("请输入令狐冲的排名:",5);
index = index * 1;
switch(index) {
case 1:
alert("武林至尊");
break;
case 2:
alert("武当掌门");
break;
case 3:
alert("峨眉掌门");
break;
default:
alert("逐出师门");
break;
}
// index 是执行地图条件
// case 判断index的对应的值
// default 默认值,其他值
// break 跳出对比,不在执行下面的语句
// if多分支语句多用来,判断范围,
// switch 分支多用来,判断固定值时执行的语句
多重逻辑判断
令狐冲参加英语,js考试,如果英语成绩大于90,且,js成绩大于75
或者 英语成绩大于80,且,js成绩大于80,九八盈盈嫁给他,
否则思过崖思过
var en = window.prompt("请输入令狐冲的英语考试成绩",60);
var js = window.prompt("请输出令狐冲的js考试成绩",60);
en = en * 1;
js = js * 1;
if( (en > 90 && js > 75) || (en > 80 && js > 80) ) {
alert("盈盈嫁给他");
}else {
alert("思过崖思过");
}
var 声明变量时的变量提升
- 再js编译中,会把var声明的变量提升到最前面,赋值为:undefined;
- 所以:如果视图去访问没有声明的变量,会报错(XXX is not defined)
// 原来的写法
alert(num); // undefined
console.log("你好啊,变量");
var num = 18;
// 由于变量提升,所以其实被编译成的是
var num;
alert(num);
console.log("你好啊,变量");
num = 18;