js多條件if語句簡寫發生Uncaught SyntaxError: Unexpected token }


改寫原生js 多條件if判斷語句時,采用三元方法,發生Uncaught SyntaxError: Unexpected token }

 1   function compareImgSize() {
 2         var coverImg = document.getElementById("bgimg");
 3         var coverSize = getImgNaturalDimensions(coverImg);
 4 
 5         var coverSizeRate = coverSize[0] / coverSize[1];
 6         // if (coverSizeRate > 1.7){
 7         //     imgPosition(33);
 8         // }else if (coverSizeRate < 1.7 && coverSizeRate > 0.7){
 9         //     imgPosition(12);
10         // }else if(coverSizeRate < 0.7){
11         //     imgPosition(0);
12         // }
13 
14         coverSizeRate > 1.7 ? imgPosition(33)
15             : (coverSizeRate < 1.7 && coverSizeRate > 0.7) ? imgPosition(12)
16             : coverSizeRate < 0.7 ? imgPosition(0)
17  }

第一次以為是第16行判斷結束時沒有“;”,但當加入“;”時,又發生Uncaught SyntaxError: Unexpected token ;

后來補上else結束條件就解決了;如圖第17行;

 1    function compareImgSize() {
 2         var coverImg = document.getElementById("bgimg");
 3         var coverSize = getImgNaturalDimensions(coverImg);
 4 
 5         var coverSizeRate = coverSize[0] / coverSize[1];
 6         // if (coverSizeRate > 1.7){
 7         //     imgPosition(33);
 8         // }else if (coverSizeRate < 1.7 && coverSizeRate > 0.7){
 9         //     imgPosition(12);
10         // }else if(coverSizeRate < 0.7){
11         //     imgPosition(0);
12         // }
13 
14         coverSizeRate > 1.7 ? imgPosition(33)
15             : (coverSizeRate < 1.7 && coverSizeRate > 0.7) ? imgPosition(12)
16             : coverSizeRate < 0.7 ? imgPosition(0)
17                  :imgPosition(0);
18 
19     }

總結:使用三元簡寫if多條件判斷語句時,必須有else結束語句結束;

完整形式

1 if(a條件){Something}
2 else if(b條件){Something}

改為:

1 a條件?Something
2 :b條件 ? Something
3 :Something;

 參考:https://www.jb51.net/article/86328.htm


免責聲明!

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



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