逻辑运算符
&& :进行且运算、两边都是true才能转化为true、 一false全false
ex: console.log(true&&false);//false
||:进行或运算、其中一边是true可以转化为true、一true全true
ex: console.log(true||false);//true
! :进行非运算,就是取反元素(!符号后面为true,则取值false反之亦是
若!符号后面不是布尔值则强制转为布尔值,转完再强制取反值)、
结果一定为布尔值
==》!符号还有一个作用就是转布尔值
Ex:
console.log(!22);//false
console.log(!0);//true
console.log(!null);//true
console.log(!NaN);//true
console.log(!“0”);//false
&&, ||,深化
&& 一假全假
先看左边
左边如果是false 就直接false不用看后面,取这个false的值
左边如果是true,右边也是true,则取后面的值
==>扩展如果以后碰到一些编程,希望前面为真再继续执行,就可以使用&&
|| 一真全真
先看左边
左边如果是true,则不看后面直接取这个true值
左边若是false,右边是true,则取右边为true的值
如果后面那个是false,取后面那个false
==>扩展如果以后碰到一些编程,如果希望前面为就不继续了,就使用||运算符,也叫短路运算符
自增自减运算符
自增自减(一元运算符)
一元代表一个运算 ,二元代表二运算,三亦是,最多到三。
自增运算符/自减
语法:++变量、变量++;
a++和++a都代表a=a+1; /–a和a–都代表a=a-1;
前者为前置后者为后置
区别:
++在前,先运算++,在取值
++在后,先取值,在运算++ //(–亦是)
运算优先级
1、()内的优先级最高;
2、一元运算符: ++ – !优先级第二;
3、算数运算符: 先* /, 再%(余数), 后加减;
4、 关系运算符:<, <, =, >, >=;
5、相等运算符: == ,!=, =, !;
6、逻辑运算符: .&& ,||;
代码执行顺序
默认执行顺序:从上到下,一次执行;
分支结构:让代码根据我们设定的条件来执行某段代码,就要用到有两个要素:1、一个是条件。 2、一个是某个条件对应的代码段。
IF条件分支语句
if语句条件为TURE执行
1、通过一个if语句来判断代码执行与否
2、语法:if(条件){要执行的代码} /条件中大于0的数值都是true
3、通过if里的条件是否成立来确定{}里的代码是否执行
4、在if里面的条件为true时就执行{}里的代码,false不执行
5、条件不一定是布尔值,但不管是什么数据类型,只要他在if()中,都会被强制转为boolean。
//判断一个人是否是成人人
var age = 21;
if(age>=18){
console.log('是个成年人');
}
If else语句
语法:
1、if(条件){条件为true的时候执行的代码}else{条件为false的时候执行}
2、两个{}里面必有一个执行
if…else…if 语句
1、通过设置if 和else…if来设置多个条件进行判断
2、语法:if (条件1){条件1为true时执行代码} else if(条件2){条件2为true执行的代码}
3、多个{条件},只会有一个{}被执行, 一旦有一个条件为true,后面就不用再判断了。
if…else…if…else语句
和if…else…if 基本一致 ,唯一不同的是在所有条件都为false时,执行最后的else里面的{}代码
if(false){
console.log('代码段1')
}else if(false){
console.log('代码段2')
}else{
console.log('代码的段3')
}
//if条件为false,不执行,判断else if里面的条件,还是false,不执行,所有的条件都不满足,执行else里面的代码
IF语句总结
/*
+if分支语句:
==>if(条件){条件为true执行}
==>代码不一定会执行,看条件,条件为false就不执行
+if...else语句
==>if(条件){条件为true执行}else{条件为false执行}
==>两个{}里面一定有一个执行
+if...else if...语句
==>if(条件1){条件1为true执行}else if(条件2){条件2为true执行}
==>代码不一定会执行,看条件,条件都为false就不执行
==>一个条件true了,就执行该条件对应的代码,并且不继续判断了
==>最多执行一个{}里面的代码
+if..else if...else...
==>if(条件1){条件1为true执行}else if(条件2){条件2为true执行}else{所有条件都不满足执行}
==>一定会执行一个{}里面的代码
==>一个条件true了,就执行该条件对应的代码,并且不继续判断了
*/
三元运算符
==>就是用两个符号组成一个语句
==>就是对if…else语句的一个简写形式
==>语法: 条件?条件为true执行:条件为false执行
==>适合要执行的代码不多的情况,如果代码较多,还是使用if…else…
//判断一个人是否是成人
var age = 21;
age>18?alert(你是大朋友):alert(你还是小朋友);
Switch分支结构(条件判断句的一种,也是对变量的判断)
语法:switch(要判断的变量){
case 情况1,情况只能写实数,不能写其他符号):
情况1要执行的代码;
break; //break表示本次分支判断结束,不用继续判断了
case 情况2:
情况执行的代码;
break;
}
…
default:上述情况都不满足执行的代码
break;
=========》要判断某个变量等于某个值的时候使用
=========》情况1,情况2,情况3。。。只能是具体的值, 例如:1,2,3,‘苹果’
//例子:输入数字,显示星期几( 假设本月一号是周一 )
var num = 2;//数字只能输入1-7
switch(num){
case 1:
alert('星期一');
break;
case 2:
// alert('星期二');
// break;
// 在case 2情况吗,什么代码都不写,表示如果符合情况2,什么代码都不执行,并且不终止,继续往下穿透
case 3:
alert('星期三');
break;
case 4:
alert('星期四');
break;
case 5:
alert('星期五');
break;
case 6:
alert('星期六');
break;
case 7:
alert('星期天');
break;
}
//switch的穿透:一旦在满足条件的地方,不写break,那么会一直执行下去,不管条件是否满足,直到break或最后
case 5:
alert('星期五');
break;
case 6:
alert('星期六');
break;
case 7:
alert('星期天');
break;
}
**//switch的穿透:一旦在满足条件的地方,不写break,那么会一直执行下去,不管条件是否满足,直到break或最后**