代码之家  ›  专栏  ›  技术社区  ›  meo

帮助我了解变量设置

  •  2
  • meo  · 技术社区  · 14 年前
    var fmt = document.documentElement.clientWidth;
            var cls = (fmt<=240)?'pda_ver':(fmt>240&&fmt<=320)?'pda_hor':(fmt>320&&fmt<=640)?'screen_ultralow':(fmt>640&&fmt<=800)?'screen_low':(fmt>800&&fmt<=1024)?'screen_med':(fmt>1024&&fmt<=1280)?'screen_high':'screen_wide';
    

    有人能告诉我这是做什么的吗(只是用一个值设置变量的部分)。我不明白。。。什么是 ? , : 这里有一个角色吗?我从未见过这样声明的变量。这是条件变量设置吗?如果是,如何工作?

    working example

    3 回复  |  直到 14 年前
        1
  •  10
  •   Pekka    14 年前

    这是一个可怕的滥用 ternary operator .

    使用A switch statement 看起来好多了。

        2
  •  4
  •   Fletcher Moore    14 年前

    这种结构在语言中有些常见:

    statement3 ? statement2 : statement1
    

    它用于内联条件,并读取:

    if (statement3) {
      statement2;
    } else {
      statement1;
    }
    
        3
  •  1
  •   baloo    14 年前

    这是一个缩写:

    var cls;
    if (fmt <= 240) {
      cls = 'pda_ver';
    } else {
     if (fmt > 240 && fmt <= 320) {
       cls = 'pda_hor';
     } else {
     ....
    

    等等