测试未声明的变量

发布于 2024-10-29 14:36:20 字数 363 浏览 3 评论 0原文

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

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

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

            var cat2 = "2"      
        }

I'm trying to parse an RSS feed using javascript. Sometimes a feed has multiple categories so I want to check if there is anything at item 2. If I don't check I get an error and when I use the following code to check I also get an error. (I'm setting var cat2 simply as a test if the variable is defined or not).

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

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

            var cat2 = "2"      
        }

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

苏辞 2024-11-05 14:36:20

检查变量是否未定义可以通过上面回答的以下内容来完成, if (typeof catItem !== 'undefined'){ ... }

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

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

Checking if a variable is undefined can be done via the following as answered above, if (typeof catItem !== 'undefined'){ ... }

However, I just wanted to point out that undefined variable is not the same as an undeclared variable. What you are asking is not "Testing for undeclared variable" as you put in the title.

Undefined variable is a variable that is "declared" but not assigned any value. An undeclared variable is a variable that has not been declared with a "var" keyword.

爱格式化 2024-11-05 14:36:20
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";
var catItem = document.getElementsByTagName("category")[2];
var cat2 = "2";

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

You could also shorten this up by using a ternary operation:

var catItem = document.getElementsByTagName("category")[2];
var cat2 = catItem ? "2" : "1";
计㈡愣 2024-11-05 14:36:20

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

为什么不这样做:

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

You're code would only work if there is an element in range of position 2.

Why not just do:

if(item.getElementsByTagName("category").length > 1) {
望她远 2024-11-05 14:36:20

你可以尝试这样的事情:

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

You can try something like this:

var catItem = item.getElementsByTagName("category");
if(catItem[1]) {
   ...
}
else {
   ...
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文