JavaScript基础--运算符中的易错点

目录

        关系运算符"=="与"==="区别

        逻辑运算符中的“短路现象”

        逻辑与&&短路现象

        逻辑或||短路现象

        取模运算%余数正负值

        逗号运算符返回操作数取值


关系运算符"=="与"==="区别

        ==:等于(仅比较值是否相等,满足条件:数值相等)

        ===:严格的等于,也称等值等型,(先判断类型,后判断值,满足条件:数值类型均相等)

        !=:不相等(满足条件:数值不等)

        !==:数值不相等或者类型不相等(!注意,只需要满足其中一点或者都满足!)

    var a=1;              //将数字1赋值给变量a
    console.log(a==1);    //数值相等,类型相同,输出true
    console.log(a=="1");  //数值相等,类型不同,输出true
    console.log(a===1);   //数值相等,类型相同,输出true
    console.log(a==="1"); //数值相等,类型不同,输出false
    console.log(a!=1);    //数值相等,类型相同,输出false
    console.log(a!="1");  //数值相等,类型不同,输出false
    console.log(a!==1);   //数值相等,类型相同,输出false
    console.log(a!=="1"); //数值相等,类型不同,输出true
    console.log(a!=="2"); //数值不等,类型不同,输出true
    console.log(a!==2);   //数值不等,类型相同,输出true

逻辑运算符中的“短路现象”

逻辑与&&短路现象

        逻辑与&&定义:表达式1&&表达式2,当两个表达式都为true

        逻辑与&&中的短路现象:当表达式1为假false,将不运算表达式2(多个表达式同理)

    //‘&&’中的短路现象
    var a=1,b=2,m;
    m=(a>b)&&(++b>0); //表达式1:a>b为假,表达式2:b自增后判断大于0(为真)
    console.log(m);   //输出m为false
    console.log(b);   //输出b,出现短路现象表达式2不运行,b不进行自增运算,故b=2

逻辑或||短路现象

        逻辑或||定义:表达式1||表达式2,当两个表达式有一个为true,结果为true

        逻辑或||中的短路现象:当表达式1为真true,将不运算表达式2(多个表达式同理)

    //‘||’中的短路现象
    var c=1,d=2,n;    
    n=(c<d)||(++d>0); //表达式1:c<d为真,表达式2:d自增后判断大于0(为真)
    console.log(n);   //输出n为true
    console.log(d);   //输出d,出现短路现象表达式2不运行,d不进行自增运算,故d=2

 注:为了避免短路运算现象,在使用逻辑运算符'&&'和'||'时,不要进行变量的赋值和运算操作

取模运算%余数正负值

        取模运算中,余数的正负取决于第一个运算数的正负

    //取模运算%
    console.log(5%2);       //输出1
    console.log(5%-2);      //输出1
    console.log(-5%2);      //输出-1
    console.log(-5%-2);     //输出-1

逗号运算符返回操作数取值

        逗号运算符可以实现连续运算,能够先执行运算符左侧操作数,再执行右侧操作数,但最后只返回最右侧操作数(即最后一个操作数)的值

    //逗号运算符
    var a=(1,1+2);
    var b=(1,1+2,true);
    var c=(1,1+2,true,null);
    var d=(1,1+2,true,null,undefined);
    var e=(1,1+2,true,null,undefined,"abc");
    var x=1,y=1,z=1;
    x=(++y,z+2);
    console.log(a);  //输出3
    console.log(b);  //输出true
    console.log(c);  //输出null)
    console.log(d);  //输出undefined
    console.log(e);  //输出abc
    console.log(x);  //输出3
    console.log(y);  //输出2
    console.log(z);  //输出1(z本身没有自运算和赋值,故保持不变)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值