【问题标题】:Testing for undeclared variable测试未声明的变量
【发布时间】:2011-04-04 16:05:52
【问题描述】:

我正在尝试使用 javascript 解析 RSS 提要。有时一个提要有多个类别,所以我想检查第 2 项是否有任何内容。如果我不检查,我会收到错误消息,当我使用以下代码检查时,我也会收到错误消息。 (我设置 var cat2 只是为了测试变量是否已定义)。

var catItem = item.getElementsByTagName("category").item(2).text;

        if (typeof catItem != 'undefined'){
            var cat2 = "1"
        }
        else{

            var cat2 = "2"      
        }

【问题讨论】:

    标签: javascript variables undefined feedparser


    【解决方案1】:

    如果 (typeof catItem !== 'undefined'){ ... }

    但是,我只想指出未定义的变量与未声明的变量不同。您要问的不是标题中的“测试未声明的变量”。

    未定义变量是“已声明”但未分配任何值的变量。未声明的变量是没有用“var”关键字声明的变量。

    【讨论】:

      【解决方案2】:
      var catItem = document.getElementsByTagName("category")[2];
      var cat2 = "2";
      
      if (typeof catItem !== 'undefined') {
          cat2 = "1";
      }
      

      你也可以通过使用三元运算来缩短它:

      var catItem = document.getElementsByTagName("category")[2];
      var cat2 = catItem ? "2" : "1";
      

      【讨论】:

        【解决方案3】:

        只有在位置 2 范围内有元素时,您的代码才有效。

        为什么不直接做:

        if(item.getElementsByTagName("category").length > 1) {
        

        【讨论】:

          【解决方案4】:

          你可以试试这样的:

          var catItem = item.getElementsByTagName("category");
          if(catItem[1]) {
             ...
          }
          else {
             ...
          }
          

          【讨论】:

            猜你喜欢
            • 2012-11-15
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2018-03-07
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多