js三元判断html,JS 三元条件运算符

(condition ? ifTrue : ifFalse)

条件运算符根据条件的逻辑值返回两个值之一。

功能

条件(三元)运算符是 JavaScript 仅有的使用三个操作数的运算符。本运算符经常作为 if 语句的简短形式来使用。

演示

function getFee(isMember) {

return (isMember ? "$2.00" : "$10.00");

}

console.log(getFee(true));

// expected output: "$2.00"

console.log(getFee(false));

// expected output: "$10.00"

console.log(getFee(1));

// expected output: "$2.00"

语法

condition ? expr1 : expr2

参数

condition (or conditions)

计算结果为 true 或 false 的表达式。

expr1, expr2

值可以是任何类型的表达式。

描述

如果 condition 为 true,运算符就会返回 expr1 的值;否则, 就会返回 expr2 的值。

一个简单的例子,测试你是否达到了美国法定的饮酒年龄。

var age = 26;

var canDrinkAlcohol = (age > 21) ? "True, over 21" : "False, under 21";

console.log(canDrinkAlcohol); // "True, over 21"

另一个例子,根据 isMember 变量的值显示不同的信息,可以使用下面的表达式:

"The fee is " + (isMember ? "$2.00" : "$10.00")

同样也可以把三元运算符的值赋值给一个变量:

var elvisLives = Math.PI > 4 ? "Yep" : "Nope";

多个三元操作符也是可能的(注:条件运算符是右结合):

var firstCheck = false,

secondCheck = false,

access = firstCheck ? "Access denied" : secondCheck ? "Access denied" : "Access granted";

console.log( access ); // logs "Access granted"

你也可以像使用多重条件的 IF 表达式一样使用三元运算符

var condition1 = true,

condition2 = false,

access = condition1 ? (condition2 ? "true true": "true false") : (condition2 ? "false true" : "false false");

console.log(access); // 输出 "true false"

注:在这里三元表达式的括号不是必须的,删去后不影响执行顺序。在这里加入它们是为了更好的看出结果是如何得出的。

还可以把三元操作符用在等式的左边:

var stop = false, age = 16;

age > 18 ? location.assign("continue.html") : stop = true;

stop; // true

你也可以在 expr1、expr2 里使用一个或多个的操作(用逗号分隔):

var stop = false, age = 23;

age > 18 ? (

alert("OK, you can go."),

location.assign("continue.html")

) : (

stop = true,

alert("Sorry, you are much too young!")

);

同样也可以在赋值过程中做多个操作。 如下所示,会将括号里的最后一个逗号分隔的值赋给变量 url。

var age = 16;

var url = age > 18 ? (

alert("OK, you can go."),

// alert 返回的值是 "undefined", 但它会被忽略,因为

// 不是括号的最后一个逗号分隔值

"continue.html" // 如果 age > 18,则这个值赋值给 url

) : (

alert("You are much too young!"),

alert("Sorry :-("),

// 等等

"stop.html" // 如果 !(age > 18) 为假,则这个值赋值给 url

);

location.assign(url); // "stop.html"

返回三元语句

三元运算符能够很好地用在函数返回值的表达式中,此时不需要 if/else 语句。

var func1 = function( .. ) {

if (condition1) { return value1 }

else { return value2 }

}

var func2 = function( .. ) {

return condition1 ? value1 : value2

}

一种使用三元表达式作为返回值,测试是否达到美国法定饮酒年龄函数的常用方法

function canDrinkAlcohol(age) {

return (age > 21) ? "True, over 21" : "False, under 21";

}

var output = canDrinkAlcohol(26);

console.log(output); // "True, over 21"

一个发现能恰当替换掉 if/else 表达式的好办法是,观察是否存在 return 关键字被使用多次, 并且每次使用都是在 if 块的内部。

通过将三元表达式使用额外的空格,拆分写在多行,使得三元运算符能干净利落地替代一个很长的 if/else 表达式。在语法上,它使用了一种更明快的方式来表达了相同的逻辑:

var func1 = function( .. ) {

if (condition1) { return value1 }

else if (condition2) { return value2 }

else if (condition3) { return value3 }

else { return value4 }

}

var func2 = function( .. ) {

return condition1 ? value1

: condition2 ? value2

: condition3 ? value3

: value4

}

规范

Specification

Status

Comment

ECMAScript Latest Draft (ECMA-262)

Conditional Operator

Draft

ECMAScript 2015 (6th Edition, ECMA-262)

Conditional Operator

Standard

ECMAScript 5.1 (ECMA-262)

The conditional operator

Standard

ECMAScript 1st Edition (ECMA-262)

The conditional operator

Standard

首次定义。在 JavaScript 1.0 中实现。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/499063.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

机器学习线性回归算法实验报告_吴恩达机器学习系列4:线性回归的梯度下降算法...

之前我们已经学过了线性回归、代价函数和梯度下降,但是他们就像一个人的胳膊和腿,只有组合在一起才会成为一个「完整的人」,这个「完整的人」就是一个机器学习算法,让我们一起来学习第一个机器学习算法吧。这个机器学习算法叫做线…

android默认exported_android:exported 属性详解-阿里云开发者社区

昨天在用360扫描应用漏洞时,扫描结果,出来一个Android:exported属性,其实之前根本不知道这个属性,更不知道这个属性用来干嘛的,详情见下图:因此,查了官方API,学习了一下这个属性!and…

计算机科技新闻,新浪网_科技时代_计算机_新闻报道

分析:你的PC强壮吗?http://www.sina.com.cn 1999年6月29日 16:00综合自从计算机得到广泛应用之后,计算机的速度和功能一直是人们执着的追求对象,二者实际上也决定了一台计算机的价值。然而随着网络时代的来临,病毒开始…

银行界加强计算机病毒管理,银行计算机管理系统维护现状与对策研究(7.12).doc...

银行计算机管理系统维护现状与对策研究(7.12)银行计算机管理系统维护现状与对策研究[摘要]:随着计算机在银行应用范围的不断扩大和应用深度的不断拓展,传统手工业务处理逐步转变为计算机处理。与此同时,银行电子化的发展也给经营管理工作提出…

树莓派python3_【树莓派】给ubuntu18安装python3.7

准备工作 安装工具 sudo apt update sudo apt upgrade sudo apt install gcc sudo apt install g sudo apt-get install libffi-dev sudo apt install build-essential checkinstall sudo apt install libreadline-gplv2-dev libncursesw5-dev libssl-dev libsqlite3-dev tk-de…

c++mfc编写实验_零基础学Windows窗口图形界面编程(不用MFC),菜鸟学完变身高手,敢与专业媲美...

又一门新的计算机课上线啦!什么课?看下面视频(以下视频是本课第一讲)用什么语言我们声明一下(这个在我们课上也跟同学强调):不要为用什么语言掐架!那是初学者的行为,为高手所不为。第二,我们这门课讲的不是…

超级计算机阿波罗11,Apollo 8000推进超算科学发展

Apollo 8000推进超算科学发展超级计算技术将理论转移到模拟数字环境和计算机分析,一直被应用于加快科学和工程领域的突破。最新的高性能计算技术带来的创新让企业客户也能够访问这些程序和应用、强化研发能力并获得竞争优势。Apollo 8000推进超算科学发展作为散热媒…

python数据库教程_在Python中编写数据库模块的教程

在一个Web App中,所有数据,包括用户信息、发布的日志、评论等,都存储在数据库中。在awesome-python-app中,我们选择MySQL作为数据库。 Web App里面有很多地方都要访问数据库。访问数据库需要创建数据库连接、游标对象,…

找不到r低版本_R的多进程使用与改进

R的多进程使用与改进在R中需要使用多进程时,常见方案是使用foreach和doParallel的组合。foreachforeach包中最重要的是foreach函数,该函数创建一个foreach对象,随后串行或并行的执行表达式。library(foreach)?foreachout:foreach( ..., .c…

药品研发 计算机系统验证,基于验证的药品研发项目申报系统的设计

摘要:目前国家大力推进信息化与工业化深度融合,提倡"互联网"的概念,信息化已经是现今的一个热名词.计算机系统在各行各业中扮演越来越重要的角色,计算机信息化已经不仅用于信息的管理,更融入了我们日常生活的每一个角落,比如购物,支付等.对于处于制造行业…

html让图片移动到一定位置_百度移动搜索优化指南2.0

百度移动搜索优化指南 2.0前期准备工作【域名】与 PC 网站一样,域名是用户对一个网站的第一印象。一个好的移动域名,不仅容易记忆、易于输入,还能方便用户向其他人推荐。域名应尽量简短易懂,越短的域名记忆成本越低,越…

ddr5内存上市时间_DDR5内存即将开始量产!DDR4内存史低价重现

本月中旬,JEDEC协会正式公布了DDR5标准,起步4800Mbps,未来可以达到6400Mbps,是DDR4内存的两倍多,最高有望达到DDR5-8400的水平。01、DDR5内存要来了DDR5标准公布之后,全球三大DRAM工厂——三星、SK海力士及…

电大法学本科计算机考试题,2016年电大-电大法学本科计算机网考答案.doc

2016年电大-电大法学本科计算机网考答案"更改默认主页"是在Internet Explorer浏览器的选项卡中进行设置,这个选项卡是____。D、常规"美国信息交换标准代码"的缩写是______。 B、ASCII1994年4月20日我国被国际上正式承认为接入Internet的国家,所…

32位mysql安装包_关于Mysql的安装

在安装之前,为保证能够安装成功,请您尝试以下操作:1、卸载原有mysql;2、搜索C:盘中是否有残余的mysql文件,主要是log文件,全部删除;3、为保证能够正常连接服务器,尽量关闭电脑防火墙&#xff1b…

hive sqoop 分区导入_利用oozie,执行sqoop action将DB2中的数据导入到hive分区表中

测试:利用oozie,执行sqoop action将DB2中的数据导入到hive分区表中。需要注意的地方:1,要添加hive.metastore.uris这个参数。否则无法将数据加载到hive表中。并且,如果一个xml文本中有多个这种操作的话,每个…

山东初二计算机会考,2017山东莱芜初二会考科目时间安排:6月14日

考试科目初中学业考试科目、分值和考试时长分别为:语文、数学、英语三科满分均为120分,考试时长均为120分钟,均按原始得分计入总分;思想品德、化学、历史、地理、生物满分均为100分,考试时长均为90分钟,均按考试分数50…

安装 ubuntu18_Ubuntu18.04安装docker及nvidia docker

Ubuntu18.04安装docker及nvidia docker 2之前的时候记得安装完docker之后还需要安装单独的nvidia docker 2,现在的话只需要安装nvidia container toolkit即可1、docker安装官网上又详细的介绍Install Docker Engine on Ubuntu​docs.docker.com或者sudo apt-get upd…

google账号解除游戏绑定_成长守护平台解除实名认证 公众号解绑操作流程

微信成长守护平台是一款培养孩子健康游戏习惯的游戏管控工具,那么微信成长守护平台怎么解除王者荣耀防沉迷呢?接下来小编就给大家带来了解除实名认证方法介绍,一起来看看吧!先简单了解一下游戏成长守护平台,它的运作方…

微软云服务器怎么注销,Microsoft 账户删除及注销

您好,了解到您要取消与当前Microsoft账户的连接。设置-账户-你的账户中,看下有没有断开连接的选项。现在是在第一次开机后的配置界面直接输入了这个邮箱账户吗?如果是这样的话,最好使用重置功能,选择不保留个人文件进行…

如何把python文件发给别人没_python怎么将py文件弄成exe

pandas 生成一列是另一列的累加结果,怎么做与怪物战斗的人,应当小心自己不要成为怪物。当你远远凝视深渊时,深渊也在凝视你。 pandas绘图不显示python用pandas库的绘图语句绘图,如何看到图? left pd.DataFrame({可以显…