JS的逻辑运算符,与&&、或||、非!,短路运算

与&&:

对符号两边的值进行‘与’运算,并返回结果。同真则真,一假则假。

两边都是true返回true,有一个是false就返回false

let a = true && true // true
let b = true && false // false
let c = false && false //false
let d = false && true // false

 或||:

对符号两边的值进行‘或’运算,并返回结果。同假则假,一真则真。

两边都是false返回false,有一个是true就返回true

let a = true && true // true
let b = true && false // true
let c = false && false //false
let d = false && true // true

非!:

对一个布尔值进行取反。假的变真的,真的变假的。

lat a = true
!a // false

与&&或||又叫短路运算符:

&&的逻辑是,运算符前面的内容为true时,执行运算符后面的代码。如果运算符前面的内容为false,那么直接打断代码的执行。利用这个机制,我们就可以做很多事情。比如点击图片跳转链接的需求,有的图片后端配了链接,有的则没有链接。那么就可以利用&&的短路来实现。

前真执行后,前假不执行

// 假设返回数据为obj对象,obj对象中的url属性为跳转链接
// 利用&&的短路,来判断让没有链接的图片,点击时不跳转
( obj.url !== undefined && obj.url !== '' ) && ( window.location.href = obj.url )
// 这样也可以 ⬇️
obj.url !== undefined && obj.url !== '' && window.location.href = obj.url
// 这一行代码的逻辑是,在obj对象中有url属性,并且url属性不为空
// 那么前面返回true,前面返回true时,后面语句直接执行

||的逻辑是,运算符前面的内容为false时,执行运算符后面的代码。如果运算符前面的代码为true,那么直接打断代码的执行。和 if 差不多。

obj.url == '' || obj.url == undefined || window.location.href = obj.url

猜你喜欢

转载自blog.csdn.net/var_infinity/article/details/127942640