浅谈js语法逻辑||,将!放置在括号外和括号内,如 !(A||B)与 (!A||!B) 的区别

逻辑或的解释如下:

逻辑或运算符不止能操作布尔值,还能操作其他数据类型:

1、如果第一个操作数隐式类型转换后为true,则返回第一个操作数;

2、如果第一个操作数隐式类型转换后为false,则往下找第二个操作数,如果第二个操作数隐式转换后为true,则返回第二个操作数,如果找到最后一个一直都是false,则返回最后一个操作数;

这里的表达式与我们平时想象的数学表达式不同,数学表达式会将所有的项都操作完,但是在逻辑或中,如果第一个值是true的话就不会往下执行,直接返回第一个值;而如果第一个值是false,才会接着往下找。

用true和false带入A和B,就能更直观的看到他们的结果不同,如下:

! (true || false)=false;

! true || ! false =true;

 

! (false|| true)=false;

! false|| ! true=true;

 

! (true || true)=false;

! true || ! true =false;

 

! (false|| false)=true;

! false|| ! false=true;

 

你可能感兴趣的:(浅谈js语法逻辑||,将!放置在括号外和括号内,如 !(A||B)与 (!A||!B) 的区别)