在前面的话

逻辑运算符对操作数执行布尔运算,通常使用与关系运算符相同的操作。逻辑运算符将多个关系表达式组合成一个更复杂的表达式。逻辑运算符分为逻辑非!、逻辑,逻辑或| | 3。本文将介绍这三种逻辑运算符。

逻辑非



逻辑不运算符由感叹号(!)可以应用于任何ECMAscript的价值。不管是什么类型的数据是这个值,运算符返回一个布尔值,逻辑非算子首先将其操作数为一个布尔值,然后将其转换为它。

逻辑不可操作数到布尔类型的转换类型与布尔()转换函数的转换类型相同,但结果最终相反。如果同时使用两个逻辑非运算符,则布尔()转换函数的行为实际上将被模拟。




console.log(!!!未定义的);
console.log(!!!空)
console.log(!!!0);
console.log(!!!- 0)
console.log(!!!南)
console.log(!啊!; //false
console.log(!!!false)



console.log(!{ }); /真
console.log(!{ }); /真

console.log(!新布尔(false))
console.log(!!!false)
console.log(!新布尔(空)
console.log(!!!空)


逻辑非运算符通常用于控制周期。


/ /布尔变量(bfound)是用来记录检索是否成功。当数据项是发现问题,bfound将被设置为true,和bfound将等于虚假,即会跳出while循环
无功bfound = false;
var I=0;
而(!bfound){
如果(一{我} = = vsearchvalues){
bfound =真;
{人}
++;
}
}


逻辑和



逻辑和运算符用两个数和()表示,有两个操作数,只有当两个操作数都为真时,结果才返回true,否则返回false。




逻辑和真值表()
第一个操作数第二个操作数的结果。
真的真的真的
真的假假
假真假
假假也


逻辑和操作可以应用于任何类型的操作数,而不仅仅是布尔值。如果其中一个操作数不是布尔值,那么逻辑和操作不一定返回布尔值。

逻辑和操作都是短路操作,如果第一个操作数可以决定结果,那么第二个操作数将不会再次被评估。

逻辑上,如果第一个操作数是false,无论第二个操作数的值是什么,结果都是false,它返回第一个操作数;如果第一个操作数是真的,结果是真的,第二个操作数返回相同的第二个操作数。




此外,未定义的、false的、空的、+的、0的、0的、7的假值,其余的都是真值。
console.log(不是); / /因为没有一个真理,所以回报
console.log(不''f '); / /因为't'is真值,它returns'f
console.log(不1 + 2); / /因为不是真值,则返回3
console.log(F); / /因为是假的,所以回报
console.log(' '); / /因为是假的,所以回报



var I=1;
var结果=(真的+ +);
console.log(结果,我 / /);因为真的是真正的价值,所以我的C++实现,我是2,结果是1

var I=1;
var =(false i +);
console.log(结果,我 / /);因为虚假是虚假的价值,所以我的C++实现,我是1,结果是错误的


逻辑和运算符可用于多个连接,以返回false的布尔值的第一个表达式的值。


console.log(true'foo ''foo '真正的' 4 '); / /


关系运算符的优先级比逻辑与逻辑或(和)(| |)高优先级,所以类似的表达可以直接写,不加括号


如果(a + 1 = 2 b + 2 = 3){

}


可以使用逻辑和运算符来替换if结构。


如果(a = b){
DoSomething ();
}
等效
(a b)(做);


在回调函数的使用中经常使用逻辑和运算符。


如果一个值没有参数,那么A是默认未定义值为false,所以不要执行A(),以防止错误,如果参数A值,执行函数A()
函数FN(a){
如果(一){
(a);
}
}
等效
函数FN(a){
A();
}


逻辑或



逻辑或操作符由两垂直线(| |)说,有两个操作数,只有当这两个操作数是假的,返回false,则返回真




/ /逻辑或真值表(| |)
第一个操作数第二个操作数的结果。
真的真的真的
真假
虚假的真实
假假假


同样,逻辑或操作可以应用于任何类型的操作数,而不仅仅是布尔值。如果其中一个操作数不是布尔值,则逻辑或操作不一定返回布尔值。

逻辑或操作也是一个短路操作,如果第一个操作数可以决定结果,那么第二个操作数将不会再次被评估。

逻辑或,如果第一个操作数是真实的,不管第二操作数的值是什么,结果是真实的,它返回第一个操作数;如果第一个操作数是错误的,结果是真实的和第二操作数并返回相同的第二操作数




console.log(不| | '); / /因为't'is真值,它返回T
console.log(不''f| |); / /因为't'is真值,因此回到T
console.log(F | | '); / /因为是假的,所以回F
console.log('' | | '); / /因为是假的,所以返回



var I=1;
var =结果(真| |我+ +);
console.log(结果,我 / /);因为真的是真正的价值,所以我的C++实现,结果是真的,我是1

var I=1;
var =结果(假| |我+ +);
console.log(结果,我 / /);因为虚假是虚假的,所以我的C++实现,我是2,结果是1


类似地,逻辑或运算符也可以用于多个连接,以返回真值布尔值的第一个表达式的值。


console.log(假| | 0 | || | 4 | | 'foo| |真); / / 4


逻辑或操作通常用于为变量设置默认值。


如果没有传入参数p的任何对象,则默认参数设置为null对象。
函数FN(p){
P = P | | { };
}


上面是由小编辑器所带来的Javascript操作符——逻辑运算符来全面分析所有内容。