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");
} 

尽管如此,我们在 DOM 应用中,一般只需要用 (!exp) 来判断就可以了,因为 DOM 应用中,可能返回 null,可能返回 undefined,如果具体判断 null 还是 undefined 会使程序过于复杂。

最新文章

  1. kettle系列-[KettleUtil]kettle插件,类似kettle的自定义java类控件
  2. 【Java心得总结七】Java容器下——Map
  3. git ignore
  4. Android 手势水平监听判断
  5. 字幕文件 WebVTT 与 srt 之间的互相转化
  6. 1、图解Oracle Logminer配置使用
  7. 开发jquery tab 插件
  8. DNS与DSN
  9. POJ 2106 Boolean Expressions (布尔表达式求值)
  10. Frequent Pattern 挖掘之一(Aprior算法)(转)
  11. qt 关于内存泄漏的检测
  12. (转)ThinkPHP自定义标签
  13. 【python学习笔记】6.抽象
  14. mac charles抓安卓(小米)http包
  15. ORACLE,DECODE函数和排名函数DENSE_RANK函数的使用
  16. db2 报错 sqlcode=-420 自动类型转换的问题
  17. flask下载文件中文IE,Edge,Safari文件名乱码
  18. [UE4]Break展开复杂数据结构
  19. Java数组排序和插入
  20. 【BZOJ4355】Play with sequence 线段树

热门文章

  1. Mongodb与mysql语法比较
  2. unity, imageEffect的最后一步blit所用的shader,应该关闭zwrite和ztest
  3. Graphics View框架
  4. Atitit.ALT+TAB没反应车and 点击任务栏程序闪烁但是不能切换
  5. jenkins插件使用小结
  6. 一个表空间offline后alert日志报ORA-01135 和ORA-01110的问题
  7. Java线程中断理解(interrupte)
  8. 【转】如何把hadoop-1.x源码关联到Eclipse工程
  9. [转]C++中的三种继承public,protected,private
  10. 在eclipse中执行sql的编码问题