1、||(逻辑或)

    1.只要 ‘||’ 前面为false,不管 ‘||’ 后面的是true还是false,都返回 ‘||’ 后面的值

例如:console.log( '' || 1)   //返回的是1      注:在js逻辑运算中,-0、0、”“、null、false、undefined、NaN都会判为false

console.log( null || 0)   //返回的是0

2.只要 ‘||’ 前面为true,不管 ‘||’ 后面的是true还是false,都返回 ‘||’ 前面的值

例如:console.log( 'hello' || 0)   //返回的是hello

console.log( 'hello'|| 1)   //返回的是'hello'

1、&&(逻辑与)

1.只要“&&”前面是false,无论“&&”后面是true还是false,结果都将返“&&”前面的值;

例如:console.log( 0 && ‘abc’)   //返回的是0

console.log( 0 && null)   //返回的是0

2.只要“&&”前面是true,无论“&&”后面是true还是false,结果都将返“&&”后面的值;

例如:console.log(  ‘abc’ && null)   //返回的是null

console.log(  ‘abc’ && 2)   //返回的是2

实际中的运用

需求:当num值为0的时候,txt的值为起步,当num值为1的时候,txt的值为第一步

当num值为2的时候,txt的值为第二步,当num为其它的时候,txt的值为结束

let num = 0;

let txt = ''

第一种方法:

if (num === 0 ) {
             txt = '起步'
} else if (num === 1) {
txt = '第一步'
} else if (num === 2) {
txt = '第二步'
} else {
txt = '结束'

}

第二种方法:

switch (num) {
case  0:
 txt = '起步'
break
case  1:
txt = '第一步'
break
case  2:
txt = '第二步'
break
default :
txt = '结束'
break
    }

第三种方法:使用与或非的方法

let txt = (num === 0 && '起步') || (num === 1 && '第一步') ||
   (num === 2 && '第二步')  || '结束'

第四种方法:

let txt = num === 0 ? '起步' : num === 0 ? '第一步' : 
          this.val === 0 ? '第二步' : '结束'

第五种方法

let txt = {'0': '起步', '1': '第一步', '2': '第二步'}[num] || '结束'

以上五种方法,第一种和第二种可读性强,后面几种简洁

与或非的总结和几种好用的赋值相关推荐

  1. Java异步非阻塞编程的几种方式

    简介: Java异步非阻塞编程的几种方式 一. 从一个同步的Http调用说起 一个很简单的业务逻辑,其他后端服务提供了一个接口,我们需要通过接口调用,获取到响应的数据. 逆地理接口:通过经纬度获取这个 ...

  2. Go中的函数也是一种数据类型,可以赋值给一个变量

    在Go中,函数也是一种数据类型,可以赋值给一个变量,则该变量就是一个函数类型的变量了.通过该变量可以对函数调用. 这种概念类似于scala中的高阶函数 package main import &quo ...

  3. C 为什么非要引入那几种类型转换?

    为什么要引入这几种类型转换,它与C语言中的强制类型转换有什么区别? 这四种类型转换分别应用在什么场景? C 为什么要引入这几种强制类型转换? 我们都知道C 完全兼容C语言,C语言的转换方式很简单,可以 ...

  4. 阻塞和非阻塞队列下两种生产者消费者实现

    队列可分为两种,一种是阻塞队列,一种是非阻塞队列. 阻塞队列和非阻塞队列的区别:阻塞队列可以阻塞,非阻塞队列不能阻塞,只能使用队列wait(),notify()进行队列消息传送.而阻塞队列当队列里面没 ...

  5. 汇编--查找第一个非0字符的五种方法

    第一种 #include <windows.h> #include <stdio.h>void main(void) {int m = 0, cout = 0;char cSt ...

  6. 非冯诺依曼体系计算机,一种新非冯·诺依曼计算机体系结构.pdf

    一种新非冯·诺依曼计算机体系结构 第26 卷 第10 期 北 京 理 工 大 学 学 报 Voi. 26 No. 10 穗 趟 魁 手 此 均 开 区 婉 糟 幻 坟 洗 补 丸 谋 赘 害 养 隐 ...

  7. php爬虫模拟浏览器,PHP模拟浏览器访问,抓取非本地文件的几种方法「爬虫」

    在做一些天气预报或者RSS订阅的程序时,往往需要抓取非本地文件,一般情况下都是利用php模拟浏览器的访问,通过http请求访问url地址, 然后得到html源代码或者xml数据,得到数据我们不能直接输 ...

  8. 模态对话框与非模态对话的几种销毁方法与区别

    From: http://renjwjx.blog.51cto.com/811549/191320/ 前几天发现自己的程序中使用非模态对话框,Debug版本有警告提示如下: Warning: call ...

  9. JAVA输出字符串中字母_Java输出字符串中的大写英文字母数,小写英文字母数以及非英文字母的三种方法...

    import java.util.*; /** * 3.编写一个程序,输出一个字符串中的大写英文字母数,小写英文字母数以及非英文字母. 提示: 方法一:使用循环提取字符,判断字符是否在A-Z .a-z ...

最新文章

  1. 对AI行业未来发展的一些看法
  2. 学习笔记Flink(二)—— Flink数据流模型、时间窗口和核心概念
  3. xampp运行php中文乱码,dvwa+xampp搭建显示乱码的问题及解决方案
  4. Docker安装java-Zookeeper进行操作
  5. android 刷rom,刷ROM是什么?刷ROM是什么意思?
  6. 软考官方教材:信息系统项目管理师教程(第三版)
  7. 一个“老”程序员的思考
  8. exchange EWS 开发随笔二
  9. Scikit-learn:分类classification
  10. Message Code 【27796】 Failed to connect to server 'hostname';port_ld': 'reason'.
  11. JavaScript详细解析
  12. 互联网地图矢量数据Python获取方法
  13. 【东华初中编程试题2206】病毒复制 N 分数 快递哥
  14. python爬携程_用python selenium抓取携程信息
  15. 研发团队管理:IT研发中项目和产品原来区别那么大,项目级的项目是项目,产品级的项目是产品!!!
  16. 学fpga(hls之vivado、zynq和petalinux)
  17. 闲来无事,做个了批量看图的页面
  18. 圆心科技再求上市:亏损金额飙升,研发费用率低于2%,如何突围?
  19. cf大区服务器显示人数合区后,CF:各大区迎来合并,未来只有4大战区,看看自己属于哪个战区?...
  20. 亚马逊AWS:一个字头的诞生

热门文章

  1. 判断是否为三角形并计算面积
  2. D - 人见人爱A+B(有关进制问题)
  3. JavaScript事件循环机制
  4. python pyc文件是啥_什么是.pyc文件
  5. iOS过滤json注释字段
  6. 通过Intent.ACTION_NEW_OUTGOING_CALL拦截电话拨号
  7. talk additionally North Face Jassen will not
  8. r 多元有序logistic回归_R实现多分类logistic回归
  9. 磁盘管理——RAID 6
  10. 超级终端与串口调试助手