js 多個三目運算符優先級


讀JS代碼遇到一段看不懂運算優先級的代碼,如下

var BrowserSys = {};
var ua = navigator.userAgent.toLowerCase();
var s;
(s = ua.match(/msie ([\d.]+)/)) ? BrowserSys.ie = s[1] :
(s = ua.match(/firefox\/([\d.]+)/)) ? BrowserSys.firefox = s[1] :
(s = ua.match(/chrome\/([\d.]+)/)) ? BrowserSys.chrome = s[1] :
(s = ua.match(/crios\/([\d.]+)/)) ? BrowserSys.chrome = s[1] :
(s = ua.match(/opera.([\d.]+)/)) ? BrowserSys.opera = s[1] :
(s = ua.match(/version\/([\d.]+).*safari/)) ? BrowserSys.safari = s[1] : 0;

經查證三目運算符是右結合性的, 如 a ? b : c ? d : e ? f : g  根據運算優先級等價於  a ? b : (c ? d : (e ? f : g )),故以上JS代碼運算順序亦可知。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM