JS逻辑运算符

/* 
! 非运算
        !就是对一个布尔值进行取反操作,true变false,false变true
        -如果对一个值进行两次取反,它不会变化
        -如果对非布尔值进行运算,则会将其转换成布尔值,然后再取反
            所以可能利用这一特点将其他数据类型转换为布尔值
            为任意数据类型取两次反,转换为布尔值
*/

        var a = 10;
        // a = "hello";
        // a = undefined;
        // a = null;
        // console.log(a);
        // console.log(typeof a);
        // a = !!a;
        // console.log(a);
        // console.log(typeof a);

/*  
&& 与运算
    &&可以对符号两侧的值进行运算并返回结果
    -只要有一个false,则返回false.(都为真才是真)
    -JS中的“与”属于短路与,如果第一个值为false,则不会看第二个值 
*/

    // var result = false && true;
    // console.log("result = " + result);
/*  
|| 或运算
    ||可以对符号两侧的值进行运算并返回结果
    -只要有一个true,则返回true.(都假才假)
    -JS中的“或”属于短路或,如果第一个值为true,则不会看第二个值 
*/

/* 
&& || 非布尔值的情况
    -对于非布尔值进行运算时,会先将其转换为布尔值,再运算,并返回原值
    -与运算:
        如果果两个值都为true,则返回后边的。
        如果有一个值为false,则返回靠前的false的值。
    -或运算:
        如果果两个值都为false,则返回后边的。
        如果有一个值为true,则返回第一个true的值。

    (ps:运算在哪中止,就返回哪个值)
*/
//返回2
var result = 1 && 2;
//返回0
result = 0 && 2;
//返回NaN
result = NaN && 0;
//返回1
result = 1 || 2;
//返回undefined
result = 0 || undefined;
//返回2 
result = NaN || 2;
console.log("result = " + result);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值