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


Posted in Javascript onDecember 16, 2013

js判断undefined类型

今天使用showModalDialog打开页面,返回值时。当打开的页面点击关闭按钮或直接点浏览器上的关闭则返回值是undefined
所以自作聪明判断  

var reValue=window.showModalDialog("","","");
  if (reValue== undefined){
  alert("undefined");
 }

发现判断不出来,最后查了下资料要用typeof

方法:
if (typeof(reValue) == "undefined") {
    alert("undefined");
}  
typeof 返回的是字符串,有六种可能:"number"、"string"、"boolean"、"object"、"function"、"undefined"

js中undefined,null,NaN的区别

1.类型分析:
js中的数据类型有undefined,boolean,number,string,object等5种,前4种为原始类型,第5种为引用类型。
var a1;
var a2 = true;
var a3 = 1;
var a4 = "Hello";
var a5 = new Object();
var a6 = null;
var a7 = NaN;
var a8 = undefined;
alert(typeof a);    //显示"undefined"
alert(typeof a1); //显示"undefined"
alert(typeof a2); //显示"boolean"
alert(typeof a3); //显示"number"
alert(typeof a4); //显示"string"
alert(typeof a5); //显示"object"
alert(typeof a6); //显示"object"
alert(typeof a7); //显示"number"
alert(typeof a8); //显示"undefined"

从上面的代码中可以看出未定义的值和定义未赋值的为undefined,null是一种特殊的object,NaN是一种特殊的number。

2.比较运算
var a1;         //a1的值为undefined
var a2 = null;
var a3 = NaN;
alert(a1 == a2); //显示"true"
alert(a1 != a2); //显示"false"
alert(a1 == a3); //显示"false"
alert(a1 != a3); //显示"true"
alert(a2 == a3); //显示"false"
alert(a2 != a3); //显示"true"
alert(a3 == a3); //显示"false"
alert(a3 != a3); //显示"true"

从上面的代码可以得出结论:(1)undefined与null是相等;(2)NaN与任何值都不相等,与自己也不相等。

JavaScript undefined 属性

定义和用法
undefined 属性用于存放 JavaScript 的 undefined 值。

语法
undefined

说明
无法使用 for/in 循环来枚举 undefined 属性,也不能用 delete 运算符来删除它。
undefined 不是常量,可以把它设置为其他值。
当尝试读取不存在的对象属性时也会返回 undefined。

提示和注释
提示:只能用 === 运算来测试某个值是否是未定义的,因为 == 运算符认为 undefined 值等价于 null。
注释:null 表示无值,而 undefined 表示一个未声明的变量,或已声明但没有赋值的变量,或一个并不存在的对象属性。

实例
在本例中,我们将检测两个变量中未定义的一个:
<script type="text/javascript">
var t1=""
var t2
if (t1===undefined) {document.write("t1 is undefined")}
if (t2===undefined) {document.write("t2 is undefined")}
</script>

输出:
t2 is undefined

Javascript 相关文章推荐
jsTree树控件(基于jQuery, 超强悍)[推荐]
Sep 01 Javascript
javascript tips提示框组件实现代码
Nov 19 Javascript
js点击button按钮跳转到另一个新页面
Oct 10 Javascript
kindeditor修复会替换script内容的问题
Apr 03 Javascript
《JavaScript函数式编程》读后感
Aug 07 Javascript
原生js图片轮播效果实现代码
Oct 19 Javascript
微信小程序 页面跳转和数据传递实例详解
Jan 19 Javascript
vue一步步实现alert功能
Jul 05 Javascript
使用svg实现动态时钟效果
Jul 17 Javascript
node使用Mongoose类库实现简单的增删改查
Nov 08 Javascript
十分钟教你上手ES2020新特性
Feb 12 Javascript
Postman无法正常返回结果问题解决
Aug 28 Javascript
innerHTML,outerHTML,innerText,outerText的用法及区别解析
Dec 16 #Javascript
js AppendChild与insertBefore用法详细对比
Dec 16 #Javascript
js中AppendChild与insertBefore的用法详细解析
Dec 16 #Javascript
JS获取月的最后一天与JS得到一个月份最大天数的实例代码
Dec 16 #Javascript
JS控件ASP.NET的treeview控件全选或者取消(示例代码)
Dec 16 #Javascript
JS冒泡事件的快速解决方法
Dec 16 #Javascript
JS批量操作CSS属性详细解析
Dec 16 #Javascript
You might like
基于php无限分类的深入理解
2013/06/02 PHP
PHP程序员常见的40个陋习,你中了几个?
2014/11/20 PHP
php mysql操作mysql_connect连接数据库实例详解
2016/12/26 PHP
深入解析PHP中SESSION反序列化机制
2017/03/01 PHP
php+js实现裁剪任意形状图片
2018/10/31 PHP
Prototype Selector对象学习
2009/07/23 Javascript
javascript 年月日联动实现核心代码
2009/12/21 Javascript
IE6,IE7下js动态加载图片不显示错误
2010/07/17 Javascript
使用javascript:将其它类型值转换成布尔类型值的解决方法详解
2013/05/07 Javascript
Jquery 实现table样式的设定
2015/01/28 Javascript
Javascript节点关系实例分析
2015/05/15 Javascript
javascript实现任务栏消息提示的简单实例
2016/05/31 Javascript
vue router-link传参以及参数的使用实例
2017/11/10 Javascript
vue父组件异步获取数据传给子组件的方法
2018/07/26 Javascript
Vue父子传递实例讲解
2020/02/14 Javascript
js实现金山打字通小游戏
2020/07/24 Javascript
Windows下安装python MySQLdb遇到的问题及解决方法
2017/03/16 Python
利用Python在一个文件的头部插入数据的实例
2018/05/02 Python
Python DataFrame 设置输出不显示index(索引)值的方法
2018/06/07 Python
python sorted函数原理解析及练习
2020/02/10 Python
python中pandas库中DataFrame对行和列的操作使用方法示例
2020/06/14 Python
Python3爬虫关于代理池的维护详解
2020/07/30 Python
Pytorch 扩展Tensor维度、压缩Tensor维度的方法
2020/09/09 Python
印度购物网站:TATA CLiQ
2017/11/23 全球购物
业务主管岗位职责
2013/11/20 职场文书
2014国培学习感言
2014/03/05 职场文书
建筑工程专业大学生求职信
2014/04/23 职场文书
不服从上级领导安排的检讨书
2014/09/14 职场文书
2014领导班子四风问题对照检查材料思想汇报
2014/09/21 职场文书
教师思想作风整顿个人剖析材料
2014/10/10 职场文书
2014年大学生工作总结
2014/11/20 职场文书
确保工程质量承诺书
2015/04/29 职场文书
2015年幼儿园师德师风建设工作总结
2015/10/23 职场文书
智慧人生:永远不需要向任何人解释你自己
2019/08/20 职场文书
24年收藏2000多部退役军用电台
2022/02/18 无线电
零基础学java之方法的定义与调用详解
2022/04/10 Java/Android