什么是" typeof $"在JavaScript中?

时间:2015-06-23 08:17:47

标签: javascript jquery

以下源代码中 typedef $ 的含义是什么。我读过this link

typeof允许以前从未声明过标识符。所以在这方面更安全:

但是他们在这里使用的是if (typeof $ !== 'undefined')$的含义是什么。

我从this link

复制了以下代码
<script type="text/javascript">
  if (typeof horizon.d3_line_chart !== 'undefined') {
    //alert("test1");
    //When first time It give alert means it is defiend 
    horizon.d3_line_chart.init("div[data-chart-type='line_chart']",
      {'auto_resize': true});
  }

  if (typeof $ !== 'undefined') {
    //alert("alert2");
    /*
      We first time we run resource usage, then It will show alert, and date options are not showing. So means first time It hides the date options. Means '$' varaible is defined.
    */
   show_hide_datepickers();
  } else {
    addHorizonLoadEvent(function() {
      show_hide_datepickers();
    });
  }

  function show_hide_datepickers() {
    $("#date_options").change(function(evt) {
        // Enhancing behaviour of selectbox, on 'other' value selected, I don't
        // want to refresh, but show hide the date fields
        if ($(this).find("option:selected").val() == "other"){
          evt.stopPropagation();
          $("#date_from input, #date_to input").val('');
          $("#date_from, #date_to").show();
        } else {
          $("#date_from, #date_to").hide();
        }
    });
    if ($("#date_options").find("option:selected").val() == "other"){
      $("#date_from, #date_to").show();
    } else {
      $("#date_from, #date_to").hide();
    }
  }
</script>

2 个答案:

答案 0 :(得分:3)

在Javascript中,$只是一个变量名,所以:

if (typeof $ !== 'undefined')

只是检查$变量是否已定义。在使用jQuery的代码中,$符号通常是jQuery对象的别名,因此此代码将检查jQuery是否存在或者jQuery是否使用$符号或不

您没有向我们展示addHorizonLoadEvent()代码,但是逻辑会建议可能负责加载jQuery或者知道包含jQuery的一组内容何时完成加载并且如果使用了代码发现任何负载$尚未完成加载。

答案 1 :(得分:0)

在您的情况下,作者只是检查是否存在并加载了某些库:

  • (typeof $ !== 'undefined') - &gt;使用$(在您的情况下为JQuery)
  • 的库
  • (typeof horizon.d3_line_chart != 'undefined') - &gt;图表库?

这允许在加载库时执行一些代码,如果没有加载则不会崩溃。也可以用来能够使用不同的库,如果不存在则尝试另一个库。