js多条件if语句简写发生Uncaught SyntaxError: Unexpected token }
2019-01-25 13:53:00 浏览:2103 作者:管理员
改写原生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条件?Something2 :b条件 ? Something3 :Something;
参考:https://www.jb51.net/article/86328.htm