三元运算符是什么--javascript基础知识

作者:日期:2011-07-22 12:52:28 点击:401

三元运算符的基本格式如下:
条件表达式?表达式一:表达式二     问号(?)之前的表示判断的条件,如果这个条件为真,则执行问号后边的语句。如果判断条件不成立,则执行冒号后边的语句
看下面的两个效果相同的示例,一个是if else 完成,一个用三元运算来完成
function changeColor(){
 var oDiv=document.getElementById('div1');
 if(oDiv.style.backgroundColor=='black'){//注意==号和=号的区别
  oDiv.style.backgroundColor='red';
 }else {
  oDiv.style.backgroundColor='green'; 
 }
}

function changeColor2(){//这个用三元运算符 ? :
 var oDiv=document.getElementById('div1');
 //问号(?)之前的表示判断的条件,如果这个条件为真,则执行问号后边的语句。如果判断条件不成立,则执行冒号后边的语句
 oDiv.style.backgroundColor=='black'?oDiv.style.backgroundColor='red':oDiv.style.backgroundColor='green';//这句话相当于上个方法中的if else
 //也可以写成这样以下这两种方式
 
  oDiv.style.backgroundColor=oDiv.style.backgroundColor=='black'?'red':'green';
  /*上面一句的意思是:如果oDiv.style.backgroundColor=='black'成立,则把'red'返回,
  否则把'green'返回。先执行三元运算符,三元运算执行完成后把三元运算
  的返回值赋给oDiv.style.backgroundColor。因为赋值运算符(=)的优先级比较低,所以在这里最后执行赋值运算,把右侧的结果赋给左侧
  */
 
  oDiv.style.backgroundColor=(oDiv.style.backgroundColor=='black'?'red':'green');
  //这个同上,加了个()可读性更强,效果同上一句代码
   
   }
可以看效果的地址请点击:http://www.zhufengpeixun.cn/b/forum.php?mod=viewthread&tid=61&extra=

上一篇: 取一个DOM元素的兄弟节点-仿jQuery的siblings方法,用原生JS代码完成

下一篇: 用javascript实现的冒泡排序-算法实例