`
lzh166
  • 浏览: 298021 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

谈谈java与js中的&&、& ||、|

阅读更多

java中的逻辑运算符主要逻辑非!、逻辑与&、逻辑或|、短路与&&、短路或||及逻辑异或^

javascript中逻辑运算符同样会有java中这些运算符,不过还是有些不同的。js中的逻辑与是java中短路与“&&”逻辑或是java中短路或“||”而java中逻辑与或在js中是按位运算的来计算的,而在java中则是根据表达式值的类型来判断是否为位运算。

下面来针对举例说明这些问题

首先,java逻辑与“&”与js“&”比较

这里在标题中已经说名了是逻辑与“&”运算,所以在写我们逻辑与运算两端的表达式时需要注意了。不要违反规则了,

规则:逻辑与“&”两端的表达式结果必须是逻辑值类型的也就是必须true或false。明白上面的规则之后,我们来看下面这例子:

java:

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

System.out.println(3>5&2<3);//false
System.out.println(1>0|2<0);//true

 

js

document.write((1&2)+"<Br>"); // 当然写法错误,但没有报错,并且同样有结果
document.write((1|2)+"<Br>"); //同上


document.write((1>2&2>1)+"<Br>"); //0  先计算关系表达式并进行位运算
document.write((1>0|2<1)+"<Br>"); //1  关系运算---->位运算


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

 

 

在上面的例子中,在java中System.out.println(1>0|2);//写法不正确,编译通不过,所以这中情况不成立,在上面的举例中漏掉了这里补充上,“&”运算符通过上面代码及结果分析,我们大体对java与js使用逻辑与运算符的区别了吧,那么我们现在能知道在上面的java举例中那两个编译通过,但是写法符合逻辑运算的规则的结果了吗?答案:按位运算的结果

0或3。

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

其次java中的逻辑或“|”与js中“|”基本和上面的一样,这里就不多描述了。

下面来看看java中短路与“&&”短路或“||”与js中所谓的逻辑与“&&”逻辑或“||”有什么不一样的地方

通过实例来总结:

java实例:

		
		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);//错误,编译不通过

 js实例:

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

 

通过上面实例代码及结果分析,短路与“&&”短路或“||”在java中还是比较好掌握的,只要遵循其原则。而在js中则显得有些灵活不定,它将js中关系运算结果true为1,false为0,所以它跟其表达式两端类型的不同而得到不同逻辑类型或者数值类型的结果。所以在js中使用逻辑运算还是需要仔细认真去写的,因为js相对比较灵活,限制规则不是很严格,不注意写错了。或表达式不争确很容易造成结果的改变。

好了,以上就是我对逻辑与、或及短路与、或 位运算在java与js中总结。有什么地方不正确的,还希望大家多多指出,共同进步!

分享到:
评论

相关推荐

    谈谈对Java的认识.pdf

    此外,Java与JavaScript、HotJava的区别在于:JavaScript是一种描述性语言,在概念上与Shell语言类似,用于描述表格、框架、背景颜色和许多其他事情。HotJava是用Java写成的一种WWW浏览器,它的主要特性是能够识别...

    java与js代码互调示例代码

    首先我们来谈谈JavaScript代码如何调用Java代码。在Android开发中,可以使用Cordova框架来构建跨平台应用。使用Cordova时,可以创建一个继承自DroidGap的类,在此类的onCreate方法中,通过addJavascriptInterface...

    Java 串口通讯demo

    Java串口通讯是一种在计算机与外部设备之间进行数据交换的技术,尤其在嵌入式系统、自动化设备、物联网应用中广泛应用。这个"Java 串口通讯demo"是一个实战项目,它结合了网页界面并通过WebSocket实现与服务器的实时...

    linux-java8.zip

    7. ** Nashorn JavaScript引擎**:Java 8包含了一个内置的JavaScript引擎,允许在Java应用中执行JavaScript代码。 接下来,我们谈谈Linux环境。Linux是一种广泛使用的开源操作系统,其稳定性和安全性受到开发者的...

    java资源管理系统

    【Java资源管理系统】是一款基于Java技术开发的管理平台,它运用了现代Web开发中的三大核心技术:Spring、Hibernate和Struts,这通常被称为SSH框架。这个系统利用Ajax技术提供了更流畅的用户交互体验,大大提升了...

    Java面试宝典-经典

    1、编写一个程序,将a.txt文件中的单词与b.txt文件中的单词交替合并到c.txt文件中,a.txt文件中的单词用回车符分隔,b.txt文件中用回车或空格进行分隔。 61 2、编写一个程序,将d:\java目录下的所有.java文件复制到d...

    java面试题大全(2012版)

    1、编写一个程序,将a.txt文件中的单词与b.txt文件中的单词交替合并到c.txt文件中,a.txt文件中的单词用回车符分隔,b.txt文件中用回车或空格进行分隔。 61 2、编写一个程序,将d:\java目录下的所有.java文件复制到d...

    java动态增加页面元素和动态建表

    在Java Web应用中,前端动态元素与后端动态建表的结合非常常见。例如,用户在界面上选择某些参数,这些参数被发送到服务器,服务器根据参数动态生成数据库表,然后返回表的结果给前端,前端再将这些数据显示在页面上...

    java上传文件和文本编辑器功能

    在Java开发中,文件上传和文本编辑器功能是常见的需求,尤其在Web应用中。本文将深入探讨如何使用Java实现这两个功能,以及涉及到的关键技术。 首先,文件上传是Web应用程序中用户交互的重要部分,通常涉及表单提交...

    java面试宝典

    187、JAVA SERVLET API中forward() 与redirect()的区别? 44 189、Can a Java Thread be started from Servlet class, and what will be the implications? 45 190、What is ...

    Go-后端采用Go开发的即时消息服务器不是XMPP。客户端绑定Java和Javascript

    通过查看这些源码,开发者可以了解到如何使用Go语言来实现IM服务器,以及如何与Java和JavaScript客户端进行交互。 总之,这个基于Go的即时通讯服务器展示了如何利用Go的并发特性构建高性能的服务,并通过Java和...

    员工管理系统-java.zip

    首先,我们来谈谈Java技术。Java是一种广泛应用于网络应用开发的面向对象的编程语言,具有跨平台性、安全性高、可移植性强等特点。在员工管理系统中,Java作为后端开发的主要语言,负责处理业务逻辑、数据存储与检索...

    java面试要点集合

    里面包含多个知名公司的面试题目,而且覆盖了ssh、数据库、java基础、js框架的各方面的面试题,总共四十一份 神舟航天软件公司 1、xml解析方式 2、ejb几种类型 3、String和StringBuffer区别 4、jsp有哪些动作标记 5...

    Java查看源代码工具

    在Java开发过程中,查看源代码是一项非常重要的任务,它能帮助开发者理解库、框架或标准API的工作原理,以便更好地利用这些资源或者进行二次开发。本文将深入探讨如何使用各种工具来查看Java源代码,以及一些相关的...

    java 实现资源管理

    在IT行业中,资源管理是一项至关重要的任务,尤其是在Java和JSP开发中。本文将深入探讨如何使用Java实现资源管理,并结合数据库操作以及Web界面布局的知识,帮助初学者更好地理解和实践。 首先,我们要理解什么是...

    最新Java面试宝典pdf版

    1、编写一个程序,将a.txt文件中的单词与b.txt文件中的单词交替合并到c.txt文件中,a.txt文件中的单词用回车符分隔,b.txt文件中用回车或空格进行分隔。 61 2、编写一个程序,将d:\java目录下的所有.java文件复制到d...

    JAVA语言程序设计课件

    首先,我们来谈谈JAVA语言基础。Java语法与C++类似,但更加简洁和安全。基础包括变量、数据类型(如整型、浮点型、字符型和布尔型)、运算符(算术、关系、逻辑、赋值等)、流程控制(如条件语句if-else,循环语句...

    java面试宝典2012

    1、编写一个程序,将a.txt文件中的单词与b.txt文件中的单词交替合并到c.txt文件中,a.txt文件中的单词用回车符分隔,b.txt文件中用回车或空格进行分隔。 67 2、编写一个程序,将d:\java目录下的所有.java文件复制到d...

    Java简历以及java面试题

    在IT行业中,Java是一种广泛应用的编程语言,尤其在企业级应用开发中占据着主导地位。因此,对于求职者来说,掌握如何编写一份优秀的Java简历以及准备充分的Java面试题至关重要。下面将详细介绍这两个方面,帮助你...

    JAVA面试宝典2010

    1、编写一个程序,将a.txt文件中的单词与b.txt文件中的单词交替合并到c.txt文件中,a.txt文件中的单词用回车符分隔,b.txt文件中用回车或空格进行分隔。 61 2、编写一个程序,将d:\java目录下的所有.java文件复制到d...

Global site tag (gtag.js) - Google Analytics