理解运算符 || 和 && 及方法

|| 前面为true的话直接返回前面的值,前面为false的话返回后面的值。如下:

console.log(0 || 1);  // 1
console.log(1 || 0);  // 1
console.log(1 || 5);  // 1
console.log(5 || 1);  // 5

复杂的如下:

console.log(0 || 1 || 2);  // 1
console.log(1 || 0 || 3);  // 1

方法:对于全都是 || 运算符,从左到右,返回第一个为true的值。如果全都是false,返回最后一个的值。

&& 前面为true的话返回后面的值,前面为flase就返回前面的值。如下:

console.log(0 && 1);  // 0
console.log(1 && 0);  // 0
console.log(1 && 5);  // 5

复杂的如下:

console.log(1 && 2 && 3);  // 3
console.log(0 && 1 && 2);  // 0console.log(1 && 0 && 2);  // 0

方法:对于全都是 && 运算符,从左到右,返回第一个为false的值,如果全都是true,返回最后一个的值。

对于混合的写法,如下:

// 运算优先级: &&优先级为11,||优先级为12,&& > ||console.log(3 && 0 || 2);     // 2
console.log(3 || 0 && 2);     // 3
console.log(0 || 2 && 3);     // 3
console.log(1+1 && 3);        // 3console.log(0 && 1+1);        // 0console.log(1 || 2 && 3-1);     // 1
时间: 2024-12-26 18:04:30

理解运算符 || 和 && 及方法的相关文章

理解toString()和hashCode()方法的重写

一般toString()方法会应用在自己bean类中.根据需要 在重写的toString 方法中 组织自己想要显示的当前对象的信息. 比如按一定规则格式返回 所以属性的名称及值. 当你要读取关于对象的一些有用细节时,可以在对象上调用toString(). 如,当把一个对象引用传递给System.out.println();时,该对象的toString()方法被调用. Java中所有的类都继承自Object父类,所以,我们在类中只要重写一下toString()方法就可以显示出我们想要的信息了. 看

Lua中..和#运算符的使用方法

Lua中..和#运算符的使用方法 例子 试试下面的例子就明白了在Lua编程语言提供的其他运算符: a = "Hello " b = "World" print("Concatenation of string a with b is ", a..b ) print("Length of b is ",#b ) print("Length of b is ",#"Test" ) 当建立并执

理解jquery的.on()方法

jquery在的.on()方法用来给元素绑定事件处理函数的,我经常用在两个地方: 给未来的元素绑定事件:我总是这样用:$(document).on('click','#div1',function(){}); 给拥有同一个父元素的多个子元素绑定事件. 可以查看以前写的博客:jQuery中对未来的元素绑定事件 先来看一个实例: 在页面A的一个div里动态加载页面B,页面B里的一个div绑定了一个单击事件. 页面A如下: <body> <input type="button&quo

轻松理解 Spark 的 aggregate 方法

2019-04-20 关键字: Spark 的 agrregate 作用.Scala 的 aggregate 是什么 Spark 编程中的 aggregate 方法还是比较常用的.本篇文章站在初学者的角度以大白话的形式来讲解一下 aggregate 方法. aggregate 方法是一个聚合函数,接受多个输入,并按照一定的规则运算以后输出一个结果值. aggregate 在哪 aggregate 方法是 Spark 编程模型 RDD 类( org.apache.spark.RDD ) 中定义的一

Java反射理解(五)-- 方法反射的基本操作

Java反射理解(五)-- 方法反射的基本操作 方法的反射 1. 如何获取某个方法 方法的名称和方法的参数列表才能唯一决定某个方法 2. 方法反射的操作 method.invoke(对象,参数列表) 举例 具体操作请看下面举例: import java.lang.reflect.Method; class A{ public void print(){ System.out.println("helloworld"); } public void print(int a,int b){

深入理解静态方法和实例化方法的区别

这是一个经常被时时提出来的问题,很多时候我们以为理解了.懂了,但深究一下,我们却发现并不懂. 方法是我们每天都在写得,很多程序员大多都使用实例化方法,而很少使用静态方法,问原因也说不出来所以然,或者简单的回答两者定义的区别,静态方法不需要new就可以使用实例化方法需要new了以后才可以使用....我们真的理解了吗? 从实际项目开发说起,这里有开发项目的三种方式: 开发项目中把BLL和DAL分开,在BLL调用DAL的代码. 一.在DAL中使用静态方法,不创建实例直接调用(大概有很多人都使用这种方式

深入理解运算符的重载

*运算符重载: 1.运算符重载就是赋予已有的运算符多重含义,即多种功能. 2.运算符重载的目的:通过运算符的重载即重新定义使得其能够用于特定类的对象执行特定的功能. 3.对于运算符的重载首先要关心的就是那些运算符能够重载,那些不能重载: 能够重载的运算符: (1).算术运算符:+,-,*,/,%,++,--: (2)位操作运算符:&,|,^,~,<<,>>: (3)逻辑运算符:!,&&,||: (4)比较运算符:>,<,>=,<=,=

深入理解Java虚拟机笔记---方法调用

方法调用并不等同于方法执行,方法调用阶段唯一的任务就是确定调用方法的版本(即调用哪一个方法),暂时还不涉及方法内部的具体运行过程.在程序运行时,进行方法调用是最普遍.最频繁的操作.在Class文件的编译过程中不包含传统编译中的连接步骤,一切方法调用在Class文件里存储的都只是符号引用,而不是方法在实际运行时内存布局中的入口地址(相当于直接引用).这个特性给Java带来了更强大的动态扩展能力,但也使得Java方法的调用过程变得相对复杂,需要在类加载期间甚至到运行期间才能确定目标方法的直接引用.

Jvm(27.14.2),理解升级---堆,栈,方法区

看完GC的回收策略之后,我们再来看一下堆,栈,方法区的交互. 首先我们必须牢记一句话,栈是堆和方法区的引用,学的越多对这句话的理解要越深. 1,这里的堆主要是对局部变量表来说的. 2,栈的内存地址是远远小于堆得,因为在栈中只是对象的引用. 3,gc回收只是回收堆内存,不用考虑栈的内存,因为栈的数据结构就是一旦出栈就会释放的. 栈也是JAVA虚拟机自动管理的,(不是由gc)栈类似一个集合(不过是有固定的容量),是由很多元素(专业术语:栈帧)组合起来的,在我们码代码的时候,每调用一个方法,在运行的时