Javascript三元条件运算符
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Javascript三元条件运算符,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1686字,纯文字阅读大概需要3分钟。
内容图文
![Javascript三元条件运算符](/upload/InfoBanner/zyjiaocheng/305/c3d9118949c94353b1ad3eb78bb839aa.jpg)
我想实现点击输入法,实现下面ul的展开与隐藏,如果我们用if else的话可能会这么写:
oBth.onclick=function(){ if (oUl.style.display=='block') { oUl.style.display=='none'; }else{ oUl.style.display=='block'; } }
但是如果我们用三元运算符的话可能就只需要下面这一行代码:
oBth.onclick=function(){ oUl.style.display == "block" ? oUl.style.display="none" :oUl.style.display="block"}
有木有很神奇。当然我只是用了一个比较容易理解的写法,还有很大的优化空间,我们当然也可以这样:
oBth.onclick=function(){ var style = oUl.style.display; oUl.style.display= style == "block" ? "none":"block" //这样写的话就一定不能忘了把运算结果重新赋值给元素 - - //oUl.style.display= (style == "block" ? "none":"block") 可读性更高 }
上面代码的意思是,如果style == "block" 成立的话就把none返回,不成立就返回block,然后把返回结果赋值给作用元素,不过要特别注意 = 和 == 用法和区别。因为赋值运算符(=)的优先级比较低,所以会最后执行赋值运算。如果把后面的三元运算符加上()可读性会更高一点,但效果是一样的。
比较容易出错的地方:
三元运算比较容易出错的应该就是运算的优先级问题:
var isMember = false; console.log("当前费用" + isMember ? "$2.00" : "$10.00"); //返回$2.00
出错的原因是?的运算优先级比+低,所以实际运行的语句是:
"当前费用false" ? "$2.00" : "$10.00");
在js中字符串是为真的,所以会输出$2.00.
不过为了避免以上错误的话,可以记住:
不是false, 0, undefined, NaN, "" or null,js都认为是true;
所以具体是用三元运算符还是用if else见仁见智,视具体情况而定吧。
内容总结
以上是互联网集市为您收集整理的Javascript三元条件运算符全部内容,希望文章能够帮你解决Javascript三元条件运算符所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。