JS逻辑运算符

一、逻辑非!一元运算符(只需要1个操作数)
1、!:把操作数转为布尔值,再对布尔值取反
!!:把任意值转化为布尔值(两次取反,还原布尔值本质)

       !true;//false
       !false;//true
       !0;//true
       !"";//true
       !"abc";//false
       !null;//true
       !!0;//false
       !!"hello";//true
       !!"undefined";//false

二、逻辑与&&二元运算符(需要2个操作数)
1、核心规则:
【全真才真】:只有左右两侧都为真,结果才为真;只要有一个假,结果就为假。
【短路求值】:如果左侧为假,直接返回左侧值,不会执行右侧代码。
2、布尔值运算:

        true&&true//true(左右两侧全为真)
        true&&false//false(左侧为真,返回右侧)
        false&&false//false(左侧为假,直接返回左侧值false)

2、非布尔值运算:

1&&2;//2(左右两侧都为真,左侧为真,转右侧2)
0&&2;//0(左侧为false,直接返回0)
"a"&&"b";//"b"(左侧为真,返回右侧)
null&&"b";//null(左侧假,返回null)

三、逻辑或||二元运算符(需要2个操作数)
【有真则真】:只要左右两侧有一个为真,结果就为真;全假才假。
【短路求真】:如果左侧为真,直接返回左侧值,不会执行右侧代码。

true||false;//true(有真则真)
false||false;//false(全假才假)
1||2;//1(左侧为真,则返回左值1)
0||2;//2(左侧为假,返回右值2)
""||"默认值";//"默认值"(左侧为假,返回右值)
null||"兜底"//"兜底"(左侧为假,返回右值)

四、空值合并运算符??
只对【空值】null/undefined兜底:左侧是null或undefined才返回右值,否则返回左值;
【短路求值】:和||一样,左侧非空值则不执行右侧。

posted @ 2026-01-07 21:28  琬六岁  阅读(3)  评论(0)    收藏  举报