首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >JavaScript :检查变量是否存在以及是否等于值

JavaScript :检查变量是否存在以及是否等于值
EN

Stack Overflow用户
提问于 2011-11-18 05:50:48
回答 8查看 30.5K关注 0票数 7

我有三个页面使用了相同的代码,其中一个页面上的变量不存在,另外两个页面上的变量ticketType的值是1或2。我需要首先检查ticketType是否存在以及是否未定义,然后需要确定它是1还是2。

下面的if语句生成一个错误:

代码语言:javascript
运行
复制
if(typeof ticketType != undefined && ticketType == 1){}

上面写的是ticketType isn't defined。我尝试嵌套if语句,以检查它是否已定义,我认为它不会尝试内部的if语句,但firebug仍然会生成错误。

有什么想法吗?一定有办法做到这一点的……

EN

回答 8

Stack Overflow用户

回答已采纳

发布于 2011-11-18 05:51:47

typeof一起使用时,'undefined'需要用引号括起来

代码语言:javascript
运行
复制
if(typeof ticketType != 'undefined' && ticketType == 1){}
票数 11
EN

Stack Overflow用户

发布于 2011-11-18 05:53:58

未定义应包含在引号内...

代码语言:javascript
运行
复制
if (typeof ticketType !== "undefined" && ticketType == 1)
{
}

编辑

这里我们不是在讨论global.undefined,它不需要用引号括起来。我们讨论的是typeof operator的返回类型,它是一个字符串。顺便说一句,对于未定义的变量,typeof返回" undefined“,因此我们需要将它包含在string中。

代码语言:javascript
运行
复制
// ticketType is not defined yet

(typeof ticketType !== undefined) // This is true
(typeof ticketType === undefined) // This is false
(typeof ticketType !== "undefined") // This is false
(typeof ticketType === "undefined") // This is true

var ticketType = "someValue"; // ticketType is defined

(typeof ticketType !== undefined) // This is still true
(typeof ticketType === undefined) // This is still false
(typeof ticketType !== "undefined") // This is true
(typeof ticketType === "undefined") // This is false

因此,正确的检查是针对"undefined"而不是针对global.undefined

票数 3
EN

Stack Overflow用户

发布于 2011-11-18 05:52:40

代码语言:javascript
运行
复制
if(typeof ticketType != 'undefined' && ticketType == 1){}

我认为你需要在未定义的单词周围加上引号。至少我总是这样做。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8174844

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档