JS中的操作语句:判断、循环
判断
条件成立做什么?不成立做什么?
- if/else if/else
1、if/else总结
if (条件) {
条件成立执行
}else if (条件2) {
条件2成立执行
}
...
else {
以上条件都不成立
}
let a = 10;
/* if (!a){
//条件可以多样性:等于、大于、小于的比较/一个值或者取反等 =>最后都是要计算出是TRUE还是FALSE
} */
if (a<=0){
console.log('哈哈');
}else if (a>0 && a<10){
//A && B:A和B都成立才为TRUE
//A || B:A或B只有一个成立就为TRUE
console.log('呵呵');
}else if (a==10){
console.log('嘿嘿');
}else {
console.log('嘻嘻');
}
- 三元运算符
//三元运算符:简单IF/ELSE的特殊处理方式
//条件?条件成立处理的事情:不成立处理的事情;
//1、如果处理的事情比较多,我们用括号包起来,每一件事情用逗号分隔
//2、如果不需要处理事情,可以使用null/undefined占位
let a = 10;
a >0 ? ( a<10 ? a++ : a-- ):( a>-10 ? a+=2 : null );
if(a>0){
if(a < 10){
a++;
}else{
a--;
}
}else {
if(a > -10){
a += 2;
}
}
// a>0 && a<20 ? (a++,console.log(a)):null;
/* if (a > 0 && a <20) {
a++; //=>a+=1 a=a+1 =>自身累加1
console.log(a);
} */
// a>=10?console.log('呵呵'):console.log('哈哈')
/* if(a>=10) {
console.log('呵呵');
}else{
console.log('哈哈');
} */
- switch case
//switch case:一个变量在不同值情况下的不同操作
//1、每一种CASE情况结束后最好都加上BREAK
//2、default等价于else,以上都不成立干的事情
//3、每一种case情况的比较用的都是===“绝对相等”(这样就可以解释下面所说的'5'的输出值 if else 和switch case 的不同了,if输出用的是双等号,switch用的三等号=>也就是绝对相等)
let a = 10;
a=5
switch(a){
case 1:
console.log('呵呵');
break;
case 5:
console.log('哈哈');
break;
case 10:
console.log('嘿嘿');
break;
default:
console.log('嘻嘻');
}
a=5
if (a==1) {
console.log('呵呵');
}else if (a==5){
console.log('哈哈');
}else if (a==10){
console.log('嘿嘿');
}else {
console.log('嘻嘻');
}
结果:
哈哈
哈哈
//if else真的和switch case一样吗?下面举个小例子,马上就明白了,两个到底输出一不一样,和上面的代码做一下比较,观察输出结果是否一样
a='5'
switch(a){
case 1:
console.log('呵呵');
break;
case 5: //=>此处 '5' case 5 =>false
console.log('哈哈');
break;
case 10:
console.log('嘿嘿');
break;
default:
console.log('嘻嘻');
}
a='5'
if (a==1) {
console.log('呵呵');
}else if (a==5){ //=>'5' == 5 =>true
console.log('哈哈');
}else if (a==10){
console.log('嘿嘿');
}else {
console.log('嘻嘻');
}
结果:
嘻嘻
哈哈
//不加break ,当前条件成立执行完成后,后面条件不论是否成立都要执行,直到遇到break为止(不加break可以实现变量在某些值的情况下做相同的事情 =>编程开发人员具备探索尝试之心)
let a = 1;
switch(a){
case 1:
a++;
case 5:
a +=2;
break;
default:
a--;
}
console.log(a);
a的结果为4;
2、== VS === 总结
==:相等(如果左右两边数据值类型不同,是默认先转换为相同的类型,然后比较)
'5' == 5 =>true
=== :绝对相等(如果类型不一样,肯定不相等,不会默认转换数据类型)
'5' === 5 =>false
项目中为了保证业务的严谨,推荐使用 ===