目录
关系运算符"=="与"==="区别
==:等于(仅比较值是否相等,满足条件:数值相等)
===:严格的等于,也称等值等型,(先判断类型,后判断值,满足条件:数值类型均相等)
!=:不相等(满足条件:数值不等)
!==:数值不相等或者类型不相等(!注意,只需要满足其中一点或者都满足!)
var a=1; //将数字1赋值给变量a
console.log(a==1); //数值相等,类型相同,输出true
console.log(a=="1"); //数值相等,类型不同,输出true
console.log(a===1); //数值相等,类型相同,输出true
console.log(a==="1"); //数值相等,类型不同,输出false
console.log(a!=1); //数值相等,类型相同,输出false
console.log(a!="1"); //数值相等,类型不同,输出false
console.log(a!==1); //数值相等,类型相同,输出false
console.log(a!=="1"); //数值相等,类型不同,输出true
console.log(a!=="2"); //数值不等,类型不同,输出true
console.log(a!==2); //数值不等,类型相同,输出true
逻辑运算符中的“短路现象”
逻辑与&&短路现象
逻辑与&&定义:表达式1&&表达式2,当两个表达式都为true
逻辑与&&中的短路现象:当表达式1为假false,将不运算表达式2(多个表达式同理)
//‘&&’中的短路现象
var a=1,b=2,m;
m=(a>b)&&(++b>0); //表达式1:a>b为假,表达式2:b自增后判断大于0(为真)
console.log(m); //输出m为false
console.log(b); //输出b,出现短路现象表达式2不运行,b不进行自增运算,故b=2
逻辑或||短路现象
逻辑或||定义:表达式1||表达式2,当两个表达式有一个为true,结果为true
逻辑或||中的短路现象:当表达式1为真true,将不运算表达式2(多个表达式同理)
//‘||’中的短路现象
var c=1,d=2,n;
n=(c<d)||(++d>0); //表达式1:c<d为真,表达式2:d自增后判断大于0(为真)
console.log(n); //输出n为true
console.log(d); //输出d,出现短路现象表达式2不运行,d不进行自增运算,故d=2
注:为了避免短路运算现象,在使用逻辑运算符'&&'和'||'时,不要进行变量的赋值和运算操作
取模运算%余数正负值
取模运算中,余数的正负取决于第一个运算数的正负
//取模运算%
console.log(5%2); //输出1
console.log(5%-2); //输出1
console.log(-5%2); //输出-1
console.log(-5%-2); //输出-1
逗号运算符返回操作数取值
逗号运算符可以实现连续运算,能够先执行运算符左侧操作数,再执行右侧操作数,但最后只返回最右侧操作数(即最后一个操作数)的值
//逗号运算符
var a=(1,1+2);
var b=(1,1+2,true);
var c=(1,1+2,true,null);
var d=(1,1+2,true,null,undefined);
var e=(1,1+2,true,null,undefined,"abc");
var x=1,y=1,z=1;
x=(++y,z+2);
console.log(a); //输出3
console.log(b); //输出true
console.log(c); //输出null)
console.log(d); //输出undefined
console.log(e); //输出abc
console.log(x); //输出3
console.log(y); //输出2
console.log(z); //输出1(z本身没有自运算和赋值,故保持不变)