比较运算符> < >= <= == != === !==
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="keywords" content="">
<meta name="description" content="">
<title>比较运算符</title>
</head>
<body>
<script>
/*
* 比较运算符 => 结果为Boolean
* > < >= <= == != === !==
* == 等于 => 只要求值相同
* != 不等于
* === 全等 => 要求数据类型和值都一样
* !== 不全等
* 没有特殊要求的话,在判断是否相等时都使用全等 ===
* */
let a = 10;
let b = 20;
console.log( a < b );//true
console.log( a <= b );//true
console.log( a > b );//false
console.log( a >= b );//false
console.log( a == b );//false
console.log( a != b );//true
let c = "10";
let d = 10;
console.log( c == d );//true
console.log( c === d );//false
console.log( c !== d );//true
</script>
</body>
</html>
逻辑运算符 &&与 ||非 !取反 类型转换 => 所有数据类型转布尔值
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="keywords" content="">
<meta name="description" content="">
<title>逻辑运算符</title>
</head>
<body>
<script>
/****************************************************/
/*
* 逻辑运算符
* && => 与 => 两边都为真,才是真,否则都为假 => 找false
* || => 或 => 两边都为假,才是假,否则都为真 => 找true
* ! => 非 => 取反,真变假,假变真
* 逻辑运算符会按照两个数据对应的布尔值进行运算
* JavaScript 每个数据,在做真假判断的时候都有自己对应的布尔值
* 每种数据都有自己对应的布尔值
* */
//布尔值的逻辑运算 => && => 两边都为真,才是真,否则都为假
let x = true && false;
console.log( x );//false
let y = false && false;
console.log( y );//false
let z = true && true;//true
console.log( z );
//布尔值的逻辑运算 => || => 两边都为假,才是假,否则都为真
let a = false || true;
console.log( a );//true
let b = false || false;
console.log( b );//false
//布尔值的逻辑运算 => ! => 取反,真变假,假变真
let i = ! true;
console.log(i);//false
let j = !false;
console.log( j );//true
let k = !!false;
console.log( k );//false
let aa = 1 && 2;
console.log( aa );//2
/****************************************************/
/*
* 数据类型转换 => 所有数据类型转布尔值
* 以下六个数据转布尔值为false ,其余都是true
* false
* ""
* 0
* undefined
* null
* NaN
* */
console.log( Boolean("0") );//true
console.log( Boolean(" ") );//true
console.log( Boolean("false") );//true
console.log( Boolean("null") );//true
console.log( Boolean(2 - 2) );//false
</script>
</body>
</html>
逻辑运算符复习 + 三目运算符
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="keywords" content="">
<meta name="description" content="">
<title></title>
</head>
<body>
<script>
/*
* 逻辑运算符 => 多个条件之间的判断
* 判断条件A
* 判断条件B
*
* 同时都满足:
* A为真,B也为真
* A && B 与运算符 => A为真,返回B => A为假,返回A (遇到假的就返回)
* A || B 或运算符 => A为真,返回A => A为假,返回B (遇到真的就返回)
* !运算符 => 表达式前面加上一个! => 逻辑非 => 强行将表达式转换为布尔类型,然后取反 => 返回的一定是布尔类型
*
* 一个值到底是真还是假?
* 数据 进行识别转换 =>转成布尔值类型
* 六大假值 => "" 0 false undefined null NaN
*
* 与和或结合在一起
* 优先级 => && > ||
*
* 开发注意的细节: 建议不要写很复杂的与或运算
* 1 || 2 && "" => ( 1 || 2 ) && ""
*
* !!两个感叹号连在一起
* 取巧写法: 强行将一个值转为布尔类型
*
* */
let a = true;
let b = true;
console.log( a && b );//true
console.log( 1 || 2 && "");//1 运算顺序 => 2 && "" => 1 || "" => 1
console.log( !1 );//false
console.log( !"" );//true
function foo(){
return !1;//取巧,强行转布尔类型
}
/**************************************************/
/*
* 三目运算符 => 返回的值要么是b,要么是c
* 假设:
* 性别男 => true
* 性别女 => false
*
* 二选一用三目运算符
* 格式 => a ? b : c
* a => 条件(true / false)
* b => 选择1(表达式)
* c => 选择2(表达式)
* 如果a为真选b,a为假选c
* */
let xingbie = "";
let type = xingbie ? "男厕所" : "女厕所";
console.log( "我去" + type );//女厕所
/**************************************************/
//面试题
let aa = 3;
let bb = 4;
console.log( ( aa > bb) ? ( aa && bb ? aa : bb) : aa || bb ? bb : aa );//4
/**************************************************/
//优先级 => ! > && > || > 三目运算符
console.log( 3 || 0 ? 1 : false );//1
console.log( ( 3 || 0 ) ? 1 : false );//1
console.log( 3 || ( 0 ? 1 : false) );//3
/**************************************************/
// A ? A : B; <=> A || B;
// A ? B : A; <=> A && B;
</script>
</body>
</html>