<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<script>
// js中的三种逻辑运算符
//&&与 ||或 !非
//取反 !
//对布尔值取反
var a = true;
!a;
console.log(a); //true
a = !a;
console.log(a); //false
a = true;
a = !!a;
console.log(a); //对true两次取反不变
//对非布尔值运算取反,先转化布尔值然后取反
var b = 666;
b = !b; //先将Number转换成Boolean值,然后取反
console.log(b); //false返回
console.log(typeof b); //Boolean
b = 0;
b = !b;
console.log(b); //true
console.log(typeof b);
b = 'liuyun';
b = !!b; //将任意一个非布尔值取反两次来转换成布尔值
console.log(b); //true
console.log(typeof b); //Boolean
//&& 与
//可以对符号两边的值进行运算并返回结果
var result = true && false;
console.log(result); //false 有一边是false则为false
result = true && true;
console.log(result); //true
result = false && false;
console.log(result); //false
//&& 只要有一个是被判断为false则停止判断后续代码
// true && alert('good');//执行警示框
false && alert('dog'); //不执行警示框
//|| 或运算
//只要有一个true则返回true 两个false则为false
result = true || true; //true
result = false || true; //true
result = false || false; //false
console.log(result);
//如果第一个值为true则不会执行后续代码
// false || alert(123); //弹出
// true || alert(123); //不弹出
//对于非布尔值进行与或运算时,则会将其转换为布尔值,然后进行运算 返回原值
var result = 1 && 2; //2
result = 2 && 1; //1 true && true 返回后面一个
result = 0 && 1; //0 false && true 返回false
result = 1 && 0; //0 false && true 返回false
result = NaN && 66; //返回NaN
result = 66 && NaN; //返回NaN
result = 0 && 0; //0
result = 0 && NaN; //0 false && false 返回第一个false
result = NaN && 0; //NaN false && false 返回第一个false
result = null && 66; //null
result = undefined && 66; //undefined
console.log(result);
//总结:第一个值为true 则看第二个值,无论真假都返回第二个值
// 第一个值为false 则不会继续看第二个值,直接返回第一个值
result = true || true; //true
result = false || true //true
result = false || false //false
result = 1 || 6; //1
result = 0 || 666; //6
result = NaN || null //null
console.log(result);
//总结: 若第一个为真 则直接返回第一个值
// 第一个值为假,则继续执行下一个值,直接返回下一个值
</script>
</body>
</html>
js中的三种逻辑运算符
最新推荐文章于 2024-08-02 16:58:07 发布