js java 运算符优先级用法总结

java与js运算符优先级基本类似,如下图所示:


大家没必要去死记运算符的优先级顺序,实际开发中,一般会使用小括号辅助进行优先级管理。例如:

           int m = 12;
           int n = m << 1 + 2;
           int o = m << (1 + 2); //这样更直观
           System.out.println(n);
           System.out.println(o);

java与js中的&&、& ||、| 用法稍有不同:

在java中使用逻辑与“&”运算,如果运算符表达式两端符合逻辑运算规则,则就是按逻辑运算判断结果,true或false,而两端若是为数值类型的则是位运算,这时我们需通过进行二进制位运算来判断结果,一端为关系表达式一端为数值类型的数字不合法,编译出错。js中使用逻辑与“&”时 与java不同,它是把“&”一直作为位运算符来操作,并没有逻辑与的意思。而在js中它把逻辑值true当做1,false当做0,然后再进行位运算得出运算结果。

System.out.println(1|2);//错误的写法,编译通过 输出结果?

System.out.println(3>5&2<3);//false 

System.out.println(1>0|2<0);//true 

document.write((1>0|2<1)+"<Br>"); //1  关系运算---->位运算

document.write((1>2&2)+"<Br>"); //0  关系运算---->位运算

document.write((1>0|1)+"<Br>"); //1 关系运算---->位运算


短路与“&&”短路或“||”在java中还是比较好掌握的,只要遵循其原则。而在js中则显得有些灵活不定,它将js中关系运算结果true为1,false为0,所以它跟其表达式两端类型的不同而得到不同逻辑类型或者数值类型的结果。       
        System.out.println(1>0&&2<0);//false
        System.out.println(1>0||2>0);//true
//        System.out.println(1>0||2);//错误,编译不通过
//        System.out.println(1>0&&2);//错误,编译不通过
//        System.out.println(1&&2);//错误,编译不通过
//        System.out.println(1||2);//错误,编译不通过


document.write((1>2&&2>1)+"<Br>");//false
document.write((1>2||2>1)+"<Br>");//true
document.write((1>2&&2)+"<Br>");//false
document.write((1<2||2)+"<Br>");//true
document.write((1<2&&5)+"<Br>");//5
document.write((1>2||2)+"<Br>");//2
document.write((1&&5>3)+"<Br>");//true
document.write((8||1<2)+"<Br>");//8 短路运算,表达式一为true则不继续,结果返回表达式一的值
document.write((1<2||false)+"<Br>");//true
document.write((true&&5<3)+"<Br>");//false 只要有逻辑类型的值参与其中结果一定返回为逻辑true或false

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值