JavaScript三元运算符以及运算符顺序
三目运算符(三元运算符)
三目运算符:运算符需要三个操作
语法:表达式1?表达式2:表达式3
表达式1是一个条件,值为Boolean类型
若表达式1的值为true,则执行表达式2的操作,并且以表达式2的结果作为整个表达式的结果;
若表达式1的值为false,则执行表达式3的操作,并且以表达式3的结果作为整个表达式的结果;
示例:
'0'和's'的布尔值都是true,所以返回第二个表达式的值 'hello'
数字 0的布尔值为false,所以返回第三个表达式的值 'world'

案例:数字补0
用户输入数字,如果数字小于0,就在前面补0,例如01,09,如果数字大于10,就不需要补0,例如14
1、用户输入0~59之间的数字
2、如果数字小于10,就在数字前面补0,否则不作操作
3、用一个变量接收返回值并且输出
var num = prompt('请输入0~59之间的一个数字');
if(num<10){
var zero = '0' + num;
alert(zero);
}
或者是
var num = prompt('输入数字');
num<10?alert('0'+num):alert(num);


三元运算符与If...else语句的区别:
一般来说三元条件表达式与if...else语句有相同的表达效果,前者可以表达的后者同样也可以表达;
两者最大的不同之处在于:if...else是语句没有返回值,三元表达式有返回值;
所以在需要返回值的场合,只能使用三元表达式,而不能使用if...else语句;
在下面的代码中,console.log()方法的参数必须为表达式,所以只能使用三元表达式。

实例:(条件运算符的嵌套)
输入一个考试成绩,判断:
如果成绩在 80 以上,则输出 优秀;
如果成绩在 60 以上,则输出 合格;
否则输出:不合格。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
<script>
var score=85;
var result=score >= 80? "优秀" : (
score>=60?"合格":"不合格");
console.log (result);
</script>
</body>
</html>

运算顺序
一、,运算符
使用逗号(,)可以分割多个语句,一般可以在声明多个变量时使用

使用,运算符同时声明多个变量并赋值。

二、运算符的优先级
在JS中各种运算符的优先级是不一样的,优先级高的运算符先执行,优先级低的运算符后执行。
1、和数学中的一样,JS运算符中的优先级也会按照先乘除后加减的顺序比较。

如果优先级一样高,就从左往右算
2、除了加减乘除这样简单的运算外,还有一些比较复杂的运算符
var x = ;
var arr = [];
var y = arr.length <= || arr[] === undefined ? x : arr[];
这里面用到的运算符是比较复杂的,这五个运算符的优先级从高到低依次为:
小于等于( <= )、严格相等( === )、或( || )、三元( ?: )、等号( = )
相当于:
var y = ((arr.length <= 0) || (arr[0] === undefined)) ? x :arr[0];
三、圆括号
圆括号可以提高运算的优先级,因为圆括号的优先级是最高的,圆括号中的运算符会第一个执行

因为使用了()所以加号运算符先于乘法运算
圆括号的作用:圆括号不是运算符(不求值,只改变运算优先级),而是一种语法结构,
1、把表达式放在圆括号内提升运算优先级;2、放在函数后面,调用函数。
四、左结合和右结合
左结合
对于优先级别相同的运算符,一般情况下,总是按照从左到右的顺序,这叫做运算符的左结合

右结合
少数运算符的运算顺序是按照从右向左的顺序来计算的;
最主要的是:1、赋值运算符(=);2、三目运算符(?:)
w = x = y = z;
q = a ? b : c ? d : e ? f : g;
等价于
w = (x = (y = z));
q = a ? b : (c ? d : (e ? f : g));
先对运算符右边进行运算
JavaScript三元运算符以及运算符顺序的更多相关文章
- JavaScript一元运算符、二元运算符和三元运算符
在JavaScript中,运算符可以根据其实际操作数的个数进行分类. JavaScript中的大多数运算符是一个二元运算符(binary operator),将两个表达式合并成为一个稍复杂的表达式.譬 ...
- 第一百节,JavaScript表达式中的运算符
JavaScript表达式中的运算符 学习要点: 1.什么是表达式 2.一元运算符 3.算术运算符 4.关系运算符 5.逻辑运算符 6.*位运算符 7.赋值运算符 8.其他运算符 9.运算符优先级 E ...
- (4)javascript的运算符以及运算符的优先级
运算符的使用方法 在javascript的程序中要完成各种各样的运算,是离不开运算符的. 在javascript中,按运算符类型可以分为 ...
- PHP中的运算符---位运算符、递增递减运算符、三元运算符、字符串运算符、数组运算符、类型运算符、错误控制运算符
1.位运算符 位运算符用来对整型数的指定位进行置位,如果被操作数是字符串,则对该字符串的ASCII码值进行操作. 运算类型 运算符 举例 结果 按位与 & $a & $b 将$a 与 ...
- JavaScript中的逗号运算符
JavaScript逗号运算符 阅读本文的前提,明确表达式.短语.运算符.运算数这几个概念. 所谓表达式,就是一个JavaScript的“短语”,JavaScript解释器可以计算它,从而生成一个值 ...
- js各运算符的执行顺序
本文原链接:https://www.sojson.com/operation/javascript.html https://www.jianshu.com/p/d569c6ca1060 JavaSc ...
- js之运算符其它运算符(三元运算符,逗号运算符,void运算符,typeof,delete运算符)
Javascript支持很多其它的运算符,具体如下: 一.条件运算符(?:) 条件运算符是Javascript中唯一的三个操作数的三元运算符,有时会直接称做是“三元运算符”. 基本格式:conditi ...
- JavaScript赋值运算符和关系运算符
赋值运算符:用以给变量进行赋值 最常见的赋值运算符就是等号(=),将右侧的值赋给左侧的变量(表达式x=y表示将y赋值给x) x += y // 等同于 x = x + y 还有其他更多的复合赋值运算 ...
- js 运算符的执行顺序
js 运算符的执行顺序 js 运算符优先级 Operator Precedence 下表从最高(21)到最低(1)优先顺序排列 left-to-right 从左到右 / 先左后右 right-to-l ...
随机推荐
- nslookup、dig、host
1.作用:查询域名对应的地址或者地址对应的域名 2.nslookup已经不建议使用,慢慢就会废弃,建议使用dig和host代替 3.格式 dig: dig @NameServer 域名 Type ho ...
- 为终端配置proxy
转自:https://my.oschina.net/u/818848/blog/677225?p=1 做开发的同学,应该都会经常接触终端,有些时候我们在终端会做一些网络操作,比如下载gradle包等, ...
- 一个简单的dns服务器
options { listen-on port 53 { any; }; listen-on-v6 port 53 { any; }; directory "/srv/app/named& ...
- window 下python2.7与python3.5两版本共存设置
分别下载两个版本的Python,安装. (1)在Path环境变量中检查以下4个变量(Path中的环境变量是以分号隔开的): 1.c:\Python27 2.c:\Python27\Scripts 3. ...
- Redis的消息订阅及发布及事务机制
Redis的消息订阅及发布及事务机制 订阅发布 SUBSCRIBE PUBLISH 订阅消息队列及发布消息. # 首先要打开redis-cli shell窗口 一个用于消息发布 一个用于消息订阅 # ...
- [2019沈阳网络赛D题]Dawn-K's water(点分治)
题目链接 题意为求出树上任意点对的距离对3取余的和. 比赛上听到题意就知道是点分治了,但是越写越不对劲,交之前就觉得会T,果不其然T了.修修改改结果队友写了发dp直接就过了Orz. 赛后想了想维护的东 ...
- PythonDay08
第八章 今日内容 文件操作 读操作 写操作 +操作 其他操作 读操作 r模式f = open('test.txt', mode='r', encoding='utf-8')print(f.read() ...
- mysql两种备份方法总结:mysqldump 和 xtrabackup
mysqldump工具基本使用 1. mysqldump [OPTIONS] database [tables…] 还原时库必须存在,不存在需要手动创建 --all-databases: 备份 ...
- 机器学习-KNN算法详解与实战
最邻近规则分类(K-Nearest Neighbor)KNN算法 1.综述 1.1 Cover和Hart在1968年提出了最初的邻近算法 1.2 分类(classification)算法 1.3 输入 ...
- 图解Qt安装(Windows平台)
http://c.biancheng.net/view/3858.html 本节介绍 Qt 5.9.0 在 Windows 平台下的安装,请提前下载好 Qt 5.9.0.不知道如何下载 Qt 的读者请 ...