逻辑与&&、逻辑或||和逻辑非!

逻辑与&&、逻辑或||和逻辑非!点击跳转原文 js 中逻辑运算符在开发中可以算是比较常见的运算符了 主要有三种 逻辑与 amp amp 逻辑或 和逻辑非 当 amp amp 和 连接语句时 两边的语句会转化为布尔类型 Boolean 然后再进行运算 具体的运算规则如下 1 amp amp 1 1 两边条件都为 true 时 结果才为 true 1 2 如果有一个为 false 结果就为 false 1 3 当第一个

点击跳转原文

js中逻辑运算符在开发中可以算是比较常见的运算符了,主要有三种:逻辑与&&、逻辑或||和逻辑非!。

当&&和|| 连接语句时,两边的语句会转化为布尔类型(Boolean),然后再进行运算,具体的运算规则如下:

1.&&

注意:当数值参与逻辑与运算时,结果为true,那么会返回的会是第二个为真的值;如果结果为false,返回的会是第一个为假的值。

2.||

注意:当数值参与逻辑或运算时,结果为true,会返回第一个为真的值;如果结果为false,会返回第二个为假的值;

3.!

3.1当条件为false时,结果为true;反之亦然。

上代码说明:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
"en" >

  


"UTF-8"
>

  
demo
  
    
console.log( 5 && 4 );
//当结果为真时,返回第二个为真的值4
    
console.log( 0 && 4 );
//当结果为假时,返回第一个为假的值0
    
console.log( 5 || 4 );
//当结果为真时,返回第一个为真的值5
    
console.log( 0 || 0 );
//当结果为假时,返回第二个为假的值0
    
console.log((3||2)&&(5||0));
//5
    
console.log(!5);
//false
  
  

补充:逻辑与的优先级是高于逻辑或的;

比如console.log(3||2&&5||0),会先算2&&5的值为5,然后再3||5—-3,最后再3||0—-3,所以最终结果为3.

补充

转换规则:

零为false;

其他网友的补充

今天复习js继承的时候发现了一个问题,先上代码了

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
 
window.onload =
function
() {
  
var
mama,
  
mama1,
  
test =
function
(name) {
  
debugger;
  
this
.name = name ||
'mama'
;
  
};
  
debugger;
  
mama =
new
test();
  
mama1 =
new
test(
"mama1"
);
  
alert(mama.name);
//name = mama
  
alert(mama1.name);
// name = mama1
 
}
 
 

?
1
2
3
4
var
b, c, d;
  
b =
true
|| 0;
//b=true;
  
c =
false
|| 0;
//c=0;
  
d = 1 || 0;
//d=1;

换成别的呢?

?
1
2
3
4
var
b, c, d;
  
b = 1-1 || 1+1;
//b=2
  
c =
function
() {
return
undefined } ||
function
() {
return
1};
//c=function();
  
d = c();
//d=undefined

?
1
2
3
4
var
b, c, d;
  
b = 1-1 || 1+1;
//b=2
  
c =
function
() {
return
1 } ||
function
() {
return
undefined};
//c=function();
  
d = c();
//d=1

?
1
b = {} || { a: 1, getA:
function
() {
return
this
.a}};
//b=object

逻辑与&&、逻辑或||和逻辑非!

?
1
2
3
var
b, c, d;
  
b = { a: 1, getA:
function
() {
return
this
.a } } || {};
//b=object
  
c = b.getA();
//c=1;

逻辑与 &&  : var a = 表达式1 && 表达式2

      表达式1    表达式2    a取值

例如

?
1
b = (1 + 1, 2 + 2, 3 + 3);
//b=6;

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/224055.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月17日 下午12:47
下一篇 2026年3月17日 下午12:48


相关推荐

  • ps如何去水印不留痕迹_水印原理

    ps如何去水印不留痕迹_水印原理概述图像叠加与音频叠加(混音)不同,人耳可以同时听到两种声音,因此混音时需要将两种信号都保留;但视频不同,图像一旦叠加,那么叠加区域人眼就只能看到最上层的图像。本文仅阐述对原始图像数据做修改的叠加方式,不涉及多个plane实现显示级别的图像叠加的知识。因此本文所述的图像叠加基本原理就是:顶层图像的像素直接替换掉底层图像的像素,从而新的图像会显示出叠加效果。NV12格式阐述代码/**a…

    2026年3月4日
    5
  • jenkinsfile docker_docker从0创建镜像

    jenkinsfile docker_docker从0创建镜像前言之前我们用docker手动安装了jenkins环境,在jenkins中又安装了python3环境和各种安装包,如果我们想要在其他3台机器上安装,又是重复操作,重复劳动,那会显得很low,这里可以

    2022年7月31日
    9
  • eclipse怎么打开压缩包_怎么把jar文件在eclipse打开

    eclipse怎么打开压缩包_怎么把jar文件在eclipse打开下载具体:http://blog.csdn.net/wushuang5566110/article/details/72663001. response.setContentType(“application/vnd.ms-excel”); response.addHeader(“Content-disposition”,”attachment;filen

    2022年10月3日
    8
  • sanitizer工具集

    sanitizer工具集sanitizer工具集的介绍Sanitizers是谷歌发起的开源工具集,包括了AddressSanitizer,undefinedbehaviorSanitizer,ThreadSanitizer,LeakSanitizer。GCC从4.8版本开始支持Addresssanitizer和ThreadSanitizer,4.9版本开始支持LeakSanitizer和undefinedbehaviorSanitizer。AddressSanitizer(ASAN):  也即地址

    2025年7月9日
    7
  • 国际标准时间哪个时区_北京时间与世界时间的换算

    国际标准时间哪个时区_北京时间与世界时间的换算关于时间格式2016-08-9T10:01:54.123Z20160809100154.123Z处理方法今天遇到了一个奇怪的时间格式如以下格式,下面两种时间格式所表示的时间是同一个时间,这个不难理解//UTC时间,世界标准时间2016-08-9T10:01:54.123Z20160809100154.123Z如图所示,这是一张由网友提供的图片,里面显示的是时间UTC…

    2025年8月21日
    4
  • 项目运行报错Error: Static interface methods are only supported starting with Android N (–min-api 24)

    项目运行报错Error: Static interface methods are only supported starting with Android N (–min-api 24)

    2021年10月1日
    47

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号