`
sangei
  • 浏览: 338214 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

undefined

阅读更多

JS 中如何判断 undefined


JavaScript 中有两个特殊数据类型:undefined 和 null,下节介绍了 null 的判断,下面谈谈 undefined 的判断。

以下是不正确的用法:

var exp = undefined;
if (exp == undefined)
{
    alert("undefined");
}


exp 为 null 时,也会得到与 undefined 相同的结果,虽然 null 和 undefined 不一样。注意:要同时判断 undefined 和 null 时可使用本法。

 

var exp = undefined;
if (typeof(exp) == undefined)
{
    alert("undefined");
}


typeof 返回的是字符串,有六种可能:"number"、"string"、"boolean"、"object"、"function"、"undefined"

 

以下是正确的用法:

 

var exp = undefined;
if (typeof(exp) == "undefined")
{
    alert("undefined");
}


--------------------------------------------------------------------------------


JS 中如何判断 null


以下是不正确的用法:

 

var exp = null;
if (exp == null)
{
    alert("is null");
}


exp 为 undefined 时,也会得到与 null 相同的结果,虽然 null 和 undefined 不一样。注意:要同时判断 null 和 undefined 时可使用本法。

 

var exp = null;
if (!exp)
{
    alert("is null");
}


如果 exp 为 undefined 或者数字零,也会得到与 null 相同的结果,虽然 null 和二者不一样。注意:要同时判断 null、undefined 和数字零时可使用本法。

 

var exp = null;
if (typeof(exp) == "null")
{
    alert("is null");
}


为了向下兼容,exp 为 null 时,typeof 总返回 object。

var exp = null;
if (isNull(exp))
{
    alert("is null");
}


JavaScript 中没有 isNull 这个函数。


以下是正确的用法:

 

var exp = null;
if (!exp && typeof(exp)!="undefined" && exp!=0)
{
    alert("is null");
} 

 

 

未赋值,就是 undefined

var v1;
var v2 = "v2";
v3 = "v3";
// v4; // 既没有使用 var,也没有为其赋值。
alert(typeof v1); // undefined
alert(typeof v2); // string
alert(typeof v3); // string
alert(typeof v4); // undefined

v1、v4 的 typeof 是 undefined,他们的特点是:

  • v1 声明了,但没有赋值;
  • v4 既没有声明,也没有赋值;

划去相同的部分,也就是说只要没有赋值 typeof 就是 undefined。还有一种情况没说:var v1 = undefined;,这等效于 var v1,所以没说。

虽然均是 undefined,但使用有所不同

那么上面的 v1 和 v4 有没有其他区别呢,当然有了,这表现在使用上,v1 虽然未被定义,但可以使用,而 v4 是不能使用的。

var v1;
function foo(p)
{
}
foo(v1); // 运行正常
foo(v4); // v4 未定义错误
 
 
 
 

js判断undefined类型

    if (reValue== undefined){
    alert("undefined");
    }
  发现判断不出来,最后查了下资料要用typeof
方法:
if (typeof(reValue) == "undefined") { 
   alert("undefined"); 
}  

typeof 返回的是字符串,有六种可能:"number"、"string"、"boolean"、"object"、"function"、"undefined"

 
 
 
好文要顶 关注我 收藏该文  
8
0
 
(请您对文章做出评价)
 

posted on 2010-04-08 10:56 冰危节奏 阅读(119375) 评论(8编辑 收藏

 

评论

#1楼   

nice
2013-09-25 17:21 | Tlink  

#2楼   

谢谢了,就是这个问题,搞定,准备下班回家,
2013-09-26 20:09 | tanshaohua  

#3楼   

什么情况下会判断不出来啊,我这边没有问题哦~
2013-11-16 20:42 | 冯翔  

#4楼   

这个代码肯定可以判断出来的
1
2
3
if (reValue== undefined){
    alert("undefined");
    }

没有问题,问题是你写成:
1
2
3
if (reValue== "undefined"){
    alert("undefined");
    }

把undefined写成字符串了,
undefined是类型的结果,不是字符串,当typeof后打印是字符串类型,所以:
1
2
3
if (typeof(reValue) == "undefined") {
   alert("undefined");

也是正确的。
2014-11-06 21:04 | dcb3688  

#5楼   

@dcb3688
四楼

if (reValue== undefined){
alert("undefined");
}
这样判断没有错误,但是,你忽略了一种场景;如果reValue没有声明,浏览器会报错的;而typeof则不会;而且,==可能会涉及强制类型转换;在js中你这种场景建议用“===”,但是js仍会报错;所以楼主的是对的。
2015-04-12 10:02 | 水中月120  

#6楼   

只能用 === 运算来测试某个值是否是未定义的,因为 == 运算符认为 undefined 值等价于 null。
2015-08-20 13:54 | 半杯水007  

#7楼   

6楼说的在理,我再来补充一下,关于js中的==与===,==只是进行数值比较,在比较时会进行强制类型转换,所以比较结果不准确,===会进行数值与类型的比较相当于全等,所以在js比较两个数相等时,建议始终使用===进行比较。同时在js当中undefined有点特殊,它既可以作为数据类型,也可以作为一个值对变量赋值,它的数据类型是undefined,而null只是可以作为值赋给变量,并不是数据类型,它的数据类型是object。举些例子:
例一:
var reg;
alert(reg===undefined);//true

例二:
alert(reg===undefined);//报错,reg is not defined

例三:
var reg;
alert(reg==null);//true,事实上reg的值是undefined,但是我使用==进行比较,这里进行了强制数据类型转换,因而结果是true

例四:
alert(typeof reg==="undefined");//true
分享到:
评论

相关推荐

    js判断undefined类型,undefined,null,NaN的区别

    JavaScript 中的 undefined、null、NaN 的区别 在 JavaScript 中,undefined、null、NaN 是三个经常被混淆的概念,但它们有着不同的含义和用途。今天,我们将深入探讨这三个概念的区别和应用。 undefined 在 ...

    js判断undefined类型,undefined,null, 的区别详细解析

    js判断undefined类型 今天使用showModalDialog打开页面,返回值时。当打开的页面点击关闭按钮或直接点浏览器上的关闭则返回值是undefined所以自作聪明判断  var reValue=window.showModalDialog(“”,””,””); ...

    Javascript中判断一个值是否为undefined的方法详解

    相信大家都知道当声明一个变量,并且没有给赋值的情况下,它的初始值是undefined。但是在javascript中,怎么检查一个值是否为undefined呢? 简单来说,在现代浏览器中,你可以安全的比较变量是否为undefined if ...

    xilinx SDK : undefined reference to “xxx”

    直到查阅到类似情况:https://forums.xilinx.com/t5/Embedded-Development-Tools/SDK-undefined-reference/td-p/818300 发现我的工程的问题是gcc 链接时找不到库文件,如下图我在gcc链接命令中添加了 -llwip4 (该...

    php Notice: Undefined index 错误提示解决方法

    总结起来,"Undefined index"错误提示的解决方法有两种,一种是通过配置来屏蔽这类错误提示,另一种是在代码中对变量的存在性进行判断。推荐使用第二种方法,因为它可以让开发者更清楚地了解程序中潜在的问题,并...

    QUARTUS II 编译报错top level design entity “...” is undefined

    在使用Altera公司的集成开发环境QUARTUS II进行FPGA设计时,你可能会遇到一个常见的错误:“top level design entity “….” is undefined”。这个错误通常表示QUARTUS II无法识别你的顶层设计实体,也就是说,它找...

    undefined.apk.1

    undefined.apk.1

    php Undefined index和Undefined variable的解决方法

    $act $ POST["act"]; 用以上代码总是提示 Notice: Undefined index: act in F: windsflybook post php on line 18 另外 有时还会出现 引用内容 Notice: Undefined variable: Submit

    ODBC解决Call to undefined function odbc_connect

    当你遇到"Call to undefined function odbc_connect"错误时,这意味着你的PHP环境没有正确配置或者缺少必要的ODBC扩展。 解决这个问题通常涉及以下几个步骤: 1. **检查PHP安装**:首先,确保你的PHP环境中已经...

    FFmpeg编译出错undefined reference to `img_convert’的解决方法

    FFmpeg 编译出错 undefined reference to `img_convert’的解决方法 FFmpeg 是一个开源的多媒体处理框架,提供了强大的音视频处理能力。然而,在使用 FFmpeg 库函数时,可能会遇到编译出错的错误,例如 undefined ...

    C生成静态库给C++调用出现undefined reference to ...解决方案_cpp

    在C++程序中调用C编译的静态库时,可能会遇到“undefined reference to ...”错误,这通常意味着链接器无法找到对应的函数定义。要解决这个问题,我们需要理解C与C++之间的互操作性以及编译和链接过程。下面将详细...

    解决Android下getifaddrs和freeifaddrs undefined reference 的问题

    因此,当你尝试在C或C++代码中使用这两个函数时,编译器会报出“undefined reference”错误。 为了解决这个问题,你可以采取以下几种方法: 1. **静态链接libresolv库**:在Android.mk或者CMakeLists.txt中,确保...

    Undefined异常模式02

    在嵌入式系统开发中,遇到“Undefined异常模式02”这样的问题,通常是由于处理器执行了未定义的指令或者访问了非法的内存地址所引起的。这可能是编程错误、硬件故障或者是系统配置不当导致的。在C语言环境中,这类...

    undefined reference to `__gnu_mcount_nc'

    内核编译出现 undefined reference to `__gnu_mcount_nc'问题的补丁包

    PyPI 官网下载 | undefined_AD-2.1.2.tar.gz

    标题 "PyPI 官网下载 | undefined_AD-2.1.2.tar.gz" 提到的是一个从Python Package Index (PyPI) 官方网站下载的软件包,名为 "undefined_AD-2.1.2",并且是打包为`.tar.gz`格式的文件。这种格式是一种常见的源代码...

    【转】undefined reference to错误的解决方法.doc

    【转】undefined reference to错误的解决方法.doc

    Undefined exploded archive location Tomcat之项目不能发布.doc

    在进行Web开发时,我们有时会遇到一些意想不到的错误,比如在使用Tomcat服务器发布项目时,出现"Undefined exploded archive location"这样的警告或错误。这个问题通常意味着Tomcat无法正确识别或定位项目的部署路径...

    php中连接mysql时出现Fatal error Call to undefined function mysql_connect()

    ### PHP中连接MySQL时出现Fatal error: Call to ...通过以上步骤,您应该能够解决“Fatal error: Call to undefined function mysql_connect()”的问题。如果仍然遇到问题,请检查所有配置细节,确保没有遗漏任何步骤。

Global site tag (gtag.js) - Google Analytics