zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    CentOS安装扩展软件支持库
    SpringBoot 定时任务 @Scheduled cron表达式
    docker启动mysql 自定义配置文件
    Informix从一个表更新多选数据到另一个表
    maven构建web项目,用jetty测试的配置pom.xml
    STSdb数据库的实现使用类
    C#操作MySQL的类
    C#操作SQLServer2012类
    小米开源数据库<pegasus>简介
    Java虚拟机运行时内存区域简析
  • 原文地址:https://www.cnblogs.com/chig/p/10319250.html
Copyright © 2011-2022 走看看