JS中的条件判断能够说在整个编程的重点中算是最为简单的了;javascript
- 主要有
if...else if...else
,三元运算符
,switch...case
;- 其中严格来讲
三元运算符
并不算条件判断的一种方式,而应该算是对简单if...else
条件语句的一种改写方式。
编程中最多见的判断java
if....else if...else
语句来选择多个代码块之一来执行。if (条件 1) {
条件 1 为 true 时执行的代码块
} else if (条件 2) {
条件 1 为 false 而条件 2 为 true 时执行的代码块
} else {
条件 1 和条件 2 同时为 false 时执行的代码块
}
复制代码
if
条件为一个值时会转换为布尔值:
true
就表示条件成立false
表示条件不成立let x = 10;
if (x) {
条件(验证真假的过程):
x==10 x===10 x>10 x<10 x>=10 ...
x 把当前值转换为布尔类型验证真假
x>=0 && x<=10 或者 x==1 || x==2
....
x++;
} else {
以上条件都不成立,执行else
x--;
}
console.log(x);
//=======================================//
let x = '10';
if (x == 1) {
x += 1;
} else if (x == 5) {
x += 2;
} else if (x == 10) { //=>'10'==10 把字符串转换为数字 条件成立
x += 3;
// x = x + 3 => '103'
} else {
x += 4;
}
console.log(x);
复制代码
在文章的开头咱们已经说过,严格上讲,三元运算符并不算是一种判断。编程
使用状况:ui
语法:spa
let x = 10;
if (x>=10) {
x++;
} else {
x--;
}
//用三元运算符书写以下:
x >= 10 ? x++ : x--;
console.log(x);
复制代码
注意:3d
let x = 10;
if (x == 10) {
x++;
}
//三元运算符方式
let x = 10;
x == 10 ? x++ : null;
复制代码
// 若是须要作多件事情,则用小括号包起来,每一件事情中间用逗号分隔便可
let x = 10;
if (x > 0) {
x++;
console.log(x);
}
x > 0 ? (x++, console.log(x)) : null;
// 能够根据需求完成三元运算符的嵌套
let x = 10;
if (x > 0) {
if (x < 10) {
x++;
} else {
x--;
}
} else {
x--;
}
x > 0 ? (x < 10 ? x++ : x--) : x--;
复制代码
使用状况:code
语法:cdn
switch(表达式){
case 值1:
表达式的值和 值1匹配上了,须要执行的代码;
break;
case 值2:
表达式的值和 值2匹配上了,须要执行的代码;
break;
default:
若是表达式的值和以上的case后面的值都没有匹配上,那么就执行这里的代码。
break;
}
复制代码
局限:blog
注意:ip
let x = '10';
switch (x) {
case 1: //=>在x等于1的状况下作什么
x += 1;
break; //=>每一种状况结束都要设置break(以供当此条件成立并处理完事情后,通知代码不在向下执行)
case 5:
x += 2;
break;
case 10: //=>'10'===10 FALSE
x += 3;
break;
default: //=>等价于else,并且最后一个判断结束无需设置break
x += 4;
}
console.log(x); //=>'104' 每一种case状况都是基于 === 进行比较的(严格比较,须要保证数据类型的一致)
复制代码
Object.is
ES6规范中新增的方式(暂不讲解)如图: