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">
js以6结尾的数字表达式
<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 = 1;
var arr = [];
var y = arr.length <= 0 || arr[0] === undefined ? x : arr[0];
这⾥⾯⽤到的运算符是⽐较复杂的,这五个运算符的优先级从⾼到低依次为:
⼩于等于( <= )、严格相等( === )、或( || )、三元( ?: )、等号( = )
相当于:
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));
先对运算符右边进⾏运算

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。