深度了解 JavaScript 中 三目运算符

深度了解 JavaScript 中 三目运算符深度了解JavaSCript中三目运算符初次写文章留作纪念三目运算符的写法及体征通过一个简单的案例,让你更深层的了解判断类型的三目运算符的应用分为单条件和多条件两种类型。单条件语法多条件语法布尔表达式?表达式true执行:表达式false执行布尔表达式1?表达式1true执行:(布尔表达式2?表达式2的true执行:两个表达…

大家好,又见面了,我是你们的朋友全栈君。

深度了解 JavaScript 中 三目运算符

初次写文章留作纪念 ?

三目运算符 的写法 及体征

通过一个简单的案例,让你更深层的了解判断类型的三目运算符的应用 分为 单条件 和 多条件 两种类型

单条件语法 多条件语法
布尔表达式 ? 表达式true执行 : 表达式false执行 布尔表达式1 ? 表达式1true执行 : (布尔表达式2 ? 表达式2的true执行 : 两个表达式都不成立执行语句)
条件 ? 成立结果 : 不成立结果 条件1 ? 成立结果1 : ( 条件2 ? 成立结果2 : 都不成立时的结果 )
var data = a<b ? a : b; var str = a<b ? “true1” : (a<c ? “true2” : (a<d ? “true3”:“false123”));
解释:如果a小于b,a赋值给data,否则b赋值给data 解释:如果a小于b(条件1) ,就将”true1″赋值给str 、 再如果a小于c(条件2),就将”true2″赋值给str 、 再如果a小于d(条件3),就将”true3″赋值给str 、否则将“false123”赋值给str

可以理解为条件 ? 结果1 : 结果2

符号 理解
是格式要求。也可以理解为条件是否成立, 问号? 后面写条件成立时的结果
: 是当条件不成立时执行的结果

单条件

// 语法  布尔表达式 ? 表达式true执行 : 表达式false执行

例如:


		var a = 4,b = 2;
		var max = a<b?a:b;//三目运算符: 布尔表达式 ? true时执行 : false时执行
		console.log(max);//2

		//与if(){}else{}相似
		//换种写法 ↓
		if( a<b ){ 
    
			max = a;
		}else { 
   
			max = b;
		}
		

多条件



		/* <表达式1> ? <表达式2> : <表达式3>; "?"运算符的含义是:先求表达式1的值,如果为真,则执行表达式2,并返回表达式2的结果; 如果表达式1的值为假,则执行表达式3,并返回表达式3的结果。 */
		

// 语法  布尔表达式1 ? 表达式1true执行 : (布尔表达式2 ? 表达式2的true执行 : 两个表达式都不成立执行语句)

例如:


		var c = 3;
		console.log( c==2?"这是2":(c==1?"这是1":(c==3?"这是3":"这个数不是1、2、3")) );//"这是3"
		
		//使用 ***括号*** 是方便查看代码,方便阅读及程序执行
		//换种写法 ↓
		//与if(){}else if(){}else{}相似
		var str = "";
		if( c==2 ){ 
   
			str = "这是2";
		}else if( c==1 ){ 
   
			str = "这是1";
		}else if( c==3 ){ 
   
			str = "这是3";
		}else{ 
   
			str = "这个数不是1、2、3"
		}
		//惊奇之处: ***三目运算有返回值!**** 
		//而if语句 只会执行代码,没有返回值,除非自定义一个变量传入进去,进行赋值

         建议在书写多条件的三目运算时,使用括号进行分隔开每段代码,方便自己查看以及程序执行
 

三目运算符执行多个条件

需求:我正在使用三目,我需要在满足条件中我让让它执行多个语句

三元运算符的结果语句可以执行多个操作,每个操作用逗号分隔就可以,例子如下:

	var a=1;
	使用括号用逗号分隔开多个语句       ↓
	a>5?(alert(1),alert(2)):(alert(3),alert(4))

总结 :

         与    if   语句对比较,发现三目运算符的操作更便捷,并且   if   语句执行后发现没有返回值,应用场景不一样,而使用三目运算符恰恰又弥补了这个缺陷。
           
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

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

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Visual Studio安装SVN插件[通俗易懂]

    Visual Studio安装SVN插件[通俗易懂]在VS上安装SVN插件后,感觉VS的代码版本控制用起来也这么顺手。

    2022年10月10日
    4
  • 电信dns服务器哪个稳定,电信宽带dns设置哪个最快? dns设置哪个最好最快「建议收藏」

    电信dns服务器哪个稳定,电信宽带dns设置哪个最快? dns设置哪个最好最快「建议收藏」中国电信广州用户(包括番禺、增城、从化等区电信用户)“首选DNS服务器”为:61.144.56.101“备用DNS服务器”为:61.144.56.100这个经过测试确实是目前最快最有效的DNS服务器。2中国电信深圳用户“首选DNS服务器”为:202.96.128.86“备用DNS服务器”设置为:202.96.128.1663中国电信广东省其他地区用户(包括佛山、中山、江门、珠海、汕头等地区电信…

    2022年7月11日
    97
  • Android performClick无效

    Android performClick无效今天遇见一个问题,很奇怪,我采用的是mvp的模式开发的,我在p层调用perforClick可以,但是在fragment界面调用却不行,在此记录下

    2022年7月13日
    20
  • python win32api messagebox_如何在Python中使用Win32 API?

    python win32api messagebox_如何在Python中使用Win32 API?PyWin32是必经之路-但是如何使用它呢?一种方法是从遇到的具体问题开始并尝试解决它。PyWin32提供了许多Win32API函数的绑定,您确实必须首先选择一个特定的目标。在我的Python2.5安装中(在Windows上为ActiveState),win32软件包具有一个Demos文件夹,其中包含该库各个部分的示例代码。例如,这是CopyFileEx.py:importwin32file…

    2022年8月31日
    6
  • ideavim怎么用_idea常用快捷键图文

    ideavim怎么用_idea常用快捷键图文学了这么久的VIM,当然还是要用在开发上。下面来介绍一下ideavim这个插件。IdeaVim是用于基于IntelliJ平台的IDE的Vim仿真插件。IdeaVim支持许多Vim功能,包括普通/插入/可视模式,动作键,删除/更改,标记,寄存器,一些Ex命令,Vimregexp,通过〜/.ideavimrc配置,宏,窗口命令等。另外还可以自定义ideavim的快捷键,定制专属的快捷键。安装I…

    2022年10月7日
    5
  • cmd ping命令大全_ping命令怎么使用

    cmd ping命令大全_ping命令怎么使用简介:ping是一种Computernetworktools(电脑网络工具),作用是测试数据包是否能通过IP协议到达特定主机。Ping是Windows系统、Unix系统和Linux系统下的一个命令。它也属于一个通信协议,是TCP/IP协议的一部分。利用“ping”命令可以检查网络是否连通,可以很好地帮助我们分析和判定网络故障。该命令还可以加许多参数使用。例如:-t,-l,-n。(注意,所有ping指令都必须在知道IP的情况下使用)使用方法:主要的用法:1.-t:不断向目标IP发送数.

    2022年9月22日
    3

发表回复

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

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