javascript学习指南_Javascript中三目运算用法例子

更新时间:2019-11-23    来源:网页配色    手机版     字体:

【www.bbyears.com--网页配色】


在JavaScript中,除了 if ... else 和 switch 语句,还有一个唯一的三目运算符 ? ... : ,也可用于简单的选择结构。

语法: conditions ? statementA : statementB ;

上述语句,首先判断条件condition,若结果为真则执行语句statementA,否则执行语句statementB。
值得注意的是,由于 JavaScript 脚本解释器将分号“ ; ”作为语句的结束符,statementA 和 statementB 语句均必须为单个语句,使用多个语句会报错。

三木运算小实例一

var a=30; 
a==20?alert("成立"):alert("不成立");  // 判断条件?成立只有执行的语句:不成立之后的语句; 

三木运算扩展小实例二

var age=25; 

age>=18 ?  
   ( 
        age<=35 ? alert("你还年轻,未来属于你!") : alert("35岁以后,就要注意身体了! ") 
    ) :  

alert("你还未成年!"); 

例如:

var now = new Date();
var greeting = "Good" + ((now.getHours() > 17) ? " evening." : " day.");

在该例子中,如果是 6pm 以后,则创建一个包含 "Good evening." 的字符串。使用 if...else 语句的等效代码如下:

var now = new Date();
var greeting = "Good";
if (now.getHours() > 17)
   greeting += " evening.";
else
   greeting += " day.";


三目运算符和if else的区别分析与示例

先试了一下if else,代码如下:
 


if(n >= count-1){
n =0;
}else{
n ++;
}
随后代码写完了,准备优化一下代码,将此段改成了三目运算符的写法
 


n = n >= (count-1) ? n=0 : n++
结果完全不同
随后研究了一下这两者的区别,总结为一句话:三目运算有返回值,if else没有返回值
做了如下测试:
 


var n=1;
 if(n>1){
    n=0;
}else{
    n++;
}
console.log(n);
输出结果:2

三目运算如下:
 


var n=1;
n = n>1?0 : n++;
console.log(n);
输出结果为:1
插入一段其他内容:++n和n++的区别:简单地说,都是 n 自加1。区别是,n++是执行完后面的语句才加1;而++n 就先做 n+1才执行后面的语句
那么对于++n呢
if else 语句


var n=1;
 if(n>1){
    n=0;
}else{
    ++n;
}
console.log(n);
输出结果:2

三目运算结果
 


var n=1;
n = n>1?0 : ++n;
console.log(n); 输出结果为:2

 
可以看出if else和三目运算的区别了吧~~~
 
n++和++n在此验证中,没有任何区别,因为if else都是计算结果之后的,不会返回n,没有任何返回值
 
但是对于三目运算,n++返回的n值为n本身,++n返回的n值为n+1之后的结果

本文来源:http://www.bbyears.com/wangyezhizuo/80806.html