MDN - 三元运算符

语法

Condition ? exprIfTrue : exprIfFalse

用例:

function getFee(isMember) {
return(isMember ? '$2.00' : '$10.00')
} getFee(true) // expected output: "$2.00"
getFee(false) // expected output: "$10.00"
getFee(null) // expected output: "$10.00"

多层判断语句:

// 颜色越深条件层级越深
typeof arg == 'number' ? (arg > 0 ? (arg > 100 ? i = 'Num huge!' : 'Num small!') : i = 'Num is minus.') : (typeof arg == 'string' ? i = 'Arg is a Str.' : i = 'Arg unknow.')

等价于

if (typeof arg == 'number') {
if (arg > 0) {
if (arg > 100) {
i = 'Num huge!'
} else {
i = 'Num small!'
}
} else {
i = 'Num is minus.'
}
} else {
if (typeof arg == 'string') {
i = 'Arg is a Str.'
} else {
i = 'Arg unknow.'
}
}

一行解决,就是可读性较差

多条执行语句

方法1:括号同上;方法2:匿名函数 + ES6箭头函数

// 方法1 括号同上
isShow? (isShow = false, btn = 'show') : (isShow = true, btn = 'hide') // 方法2 匿名函数 + ES6箭头函数
isShow ? (() = > {
isShow = false;
btn = 'show';
})()
: (() => {
isShow = true;
btn = 'hide';
})();

括号不可省略。

- END -

JS010. 三元运算符扩展运用(多层判断语句 / 多条表达式)的更多相关文章

  1. if语句实现考试成绩划分和用if语句替换三元运算符

    语句练习 指定考试成绩,判断成绩的等级. 90-100 优秀 80-89 好 70-79 良 60-69 及格 60以下 不及格 代码: public static void main(String[ ...

  2. java三元运算符详解

    最近在带领实习生中遇到很多新手问与三元运算符有关的java题目,多数为代码结果题,少数为应用题.鉴于很多资料上对于java三元运算的讲解过于简单,网上的资料与题目也不是很完善,对于结果答案分析不一,故 ...

  3. JavaScript一元运算符、二元运算符和三元运算符

    在JavaScript中,运算符可以根据其实际操作数的个数进行分类. JavaScript中的大多数运算符是一个二元运算符(binary operator),将两个表达式合并成为一个稍复杂的表达式.譬 ...

  4. java运算符-逻辑、三元运算符

    1.逻辑运算符 逻辑运算符,它是用于布尔值进行运算的,运算的最终结果为布尔值true或false. 运算符 运算规则 范例 结果 & 与 false&true False | 或 fa ...

  5. PHP 三元运算符

    $a = $a ? $a : 1;//第一种 $a = $a ? : 1;//第二种 第二种写法从 PHP 5.3 引入,表示若 $a 返回值为真时,取 $a 的返回值. 此外,在 PHP7 中引入了 ...

  6. 逻辑运算符、位运算符、三元运算符、判断语句(if,switch)

    逻辑运算符 逻辑与 &:由false则false 逻辑或 |:有true则true 逻辑异或 ^:相同为false,不同为true 逻辑非 !:非false则true,非true则false ...

  7. JavaScript三种判断语句和三元运算符

    三种判断语句 1.if结构 语法:if(条件){条件满足时执行的代码块} 2.if else结构 语法:if(条件){条件满足时执行的代码块}   else{条件不满足时执行的代码块} 3.if el ...

  8. 前端笔记知识点整合之JavaScript(二)关于运算符&初识条件判断语句

    运算符 数学运算符的正统,number和number的数学运算,结果是number.出于面试的考虑,有一些奇奇怪怪的数学运算: 数学运算中:只有纯字符串.布尔值.null能够进行隐式转换.   //隐 ...

  9. 前端笔记之JavaScript(二)关于运算符&初识条件判断语句

    运算符 数学运算符的正统,number和number的数学运算,结果是number.出于面试的考虑,有一些奇奇怪怪的数学运算: 数学运算中:只有纯字符串.布尔值.null能够进行隐式转换. //隐式转 ...

随机推荐

  1. Docker介绍及安装详解

    1:Docker简介 Docker 是一种运行于 Linux 和 Windows 上的软件,用于创建.管理和编排容器.Docker 是在 GitHub 上开发的 Moby 开源项目的一部分.Docke ...

  2. MFC发送自定义消息

    1.在窗口的头文件中声明: afx_msg LRESULT OnMyMessage(WPARAM wParam, LPARAM lParam); 2.在cpp的BEGIN_MESSAGE_MAP和EN ...

  3. 2021大厂Android面试高频100题最新汇总(附答案详解)

    前言 现在越来越多的人应聘工作时都得先刷个几十百来道题,不刷题感觉都过不了面试. 无论是前后端.移动开发,好像都得刷题,这么多人通过刷题过了面试,说明刷题对于找工作还是有帮助的. 不过这其中有一个问题 ...

  4. SpringBoot-技术专区-用正确的姿势如何用外置tomcat配置及运行(Tomcat优化分析)

    前提概要 在特别特殊的时候,我们可能需要外置tomcat去运行程序,例如alitomcat等特殊场景,方便我们去定时化开发项目或者其他特殊场景. 外置tomcat执行 pom.xml文件首先更改打包方 ...

  5. [C++]-map 映射

    map用来存储排序后的由键和值组成的项的集合.键必须唯一,不同的键可以对应同一个值,在map中键保持逻辑排序后的顺序(以键为标准). 代码 #include<iostream> #incl ...

  6. zookeeper查看启动状态报错:Error contacting service. It is probably not running.

    问题描述 我有三台虚拟机master.slave1.slave2.每台虚拟机启动zkServer.sh时都没有报错,然后紧接着查看zkServer.sh的状态,这时候出现了错误:Error conta ...

  7. 卓越的教练是如何训练高手的?(谈谈memmove)

    编者按:我们知道,优秀的运动员除了自身的天赋和努力之外,出色的教练必不可少.一个成功的企业除了拥有出类拔萃的员工之外,同样需要一位出色的教练,那就是企业的CEO.由此可见,如果我们要想成为一位优秀的程 ...

  8. 1002 A+B for Polynomials (25分) 格式错误

    算法笔记上能踩的坑都踩了. #include<iostream> using namespace std; float a[1001];//至少1000个位置 int main(){ in ...

  9. MySQL-19-分布式架构MyCat

    MyCAT基础架构图(实验环境) MyCAT实验环境准备 1 环境准备 两台虚拟机: db01(10.0.0.51) db02(10.0.0.52) 每台创建四个mysql实例:3307 3308 3 ...

  10. SpringCloud升级之路2020.0.x版-20. 启动一个 Eureka Server 集群

    本系列代码地址:https://github.com/HashZhang/spring-cloud-scaffold/tree/master/spring-cloud-iiford 我们的业务集群结构 ...