day-6.3 判断控制语句三目运算写法实例
一个通过点击事件控制盒子颜色的三目运算写法实例
原始的if判断写法
1 <style> 2 body,dl,dd,p,h1,h2,h3,h4,h5,h6{margin:0;} 3 ol,ul,li{margin:0;padding:0;list-style:none;} 4 img{border:none;} 5 #wrap { 6 width:200px; 7 height:200px; 8 } 9 #wrap.red { 10 background-color:red; 11 } 12 #wrap.pink{ 13 background-color:pink; 14 } 15 16 </style> 17 </head> 18 <body> 19 <div id="wrap" class="red"></div> 20 21 <script> 22 var oWrap = document.getElementById("wrap"); 23 //console.log(oWrap); 24 var a = true; 25 oWrap.onclick = function () { 26 a = !a; 27 if (a){ //注意if判断一定要写在事件里面,事件触发的时候只会重新执行事件里面的代码块,如果if判断放在外面,则不会因为事件触发而重新执行。 28 oWrap.className = "red"; 29 }else { 30 oWrap.className = "pink"; 31 } 32 }; 33 </script> 34 </body>
我们发现if判断满足三目写法的条件:
1、if判断结构只有 if 和 else层。
2、条件语句和代码块都只有一个表达式
所以可以将事件函数里的代码块进行三目改写,
改写后。
1 oWrap.onclick = function () { 2 a = !a; 3 a ? oWrap.className="red":oWrap.className="pink"; 4 };
这样算基本改写完了,但是三目写法为什么叫三目运算,
我们知道运算符一般都是一个返回赋值的运算表达式,而这里只是一个逻辑判断,而并没有具备运算的特性。
这是因为上述三目改写还不是三目运算写法的最终格式;
所以进行下一步最终改写,即:
1 oWrap.onclick = function () { 2 a = !a; 3 oWrap.className=a ?"red":"pink"; 4 };
这才是最终的三目运算写法,通过对a的条件判断,完成对oWrap.className这个属性的赋值。
浙公网安备 33010602011771号