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 相关文章推荐
精心挑选的15款优秀jQuery 本特效插件和教程
Aug 06 Javascript
Javascript随机标签云代码实例
Jun 21 Javascript
Three.js学习之Lamber材质和Phong材质
Aug 04 Javascript
Bootstrap栅格系统的使用和理解2
Dec 14 Javascript
js事件委托和事件代理案例分享
Jul 25 Javascript
以BootStrap Tab为例写一个前端组件
Jul 25 Javascript
深入解析vue 源码目录及构建过程分析
Apr 24 Javascript
js获取对象,数组所有属性键值(key)和对应值(value)的方法示例
Jun 19 Javascript
Vue中通过Vue.extend动态创建实例的方法
Aug 13 Javascript
nodemon实现Typescript项目热更新的示例代码
Nov 19 Javascript
如何使用JavaScript策略模式校验表单
Apr 29 Javascript
JavaScript严格模式不支持八进制的问题讲解
Nov 07 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连接mysql数据库代码
2009/03/10 PHP
PHP发送邮件确认验证注册功能示例【修改别人邮件类】
2019/11/09 PHP
javascript Demo模态窗口
2009/12/06 Javascript
js限制文本框为整数和货币的函数代码
2010/10/13 Javascript
jQuery随便控制任意div隐藏的方法
2013/06/28 Javascript
DOM基础教程之事件对象
2015/01/20 Javascript
JavaScript中关联原型链属性特性
2016/02/13 Javascript
简单模拟node.js中require的加载机制
2016/10/27 Javascript
获取JavaScript异步函数的返回值
2016/12/21 Javascript
BootStrap table删除指定行的注意事项(笔记整理)
2017/02/05 Javascript
Vue组件之极简的地址选择器的实现
2018/05/31 Javascript
JavaScript中this关键字用法实例分析
2018/08/24 Javascript
使用elementUI实现将图片上传到本地的示例
2018/09/04 Javascript
js+audio实现音乐播放器
2020/09/13 Javascript
python Pandas 读取txt表格的实例
2018/04/29 Python
Django项目开发中cookies和session的常用操作分析
2018/07/03 Python
Python使用Selenium爬取淘宝异步加载的数据方法
2018/12/17 Python
检测python爬虫时是否代理ip伪装成功的方法
2019/07/12 Python
tensorflow查看ckpt各节点名称实例
2020/01/21 Python
tensorflow 实现数据类型转换
2020/02/17 Python
jupyter notebook oepncv 显示一张图像的实现
2020/04/24 Python
keras 多任务多loss实例
2020/06/22 Python
详解基于python的全局与局部序列比对的实现(DNA)
2020/10/07 Python
html5的input的required使用中遇到的问题及解决方法
2018/04/24 HTML / CSS
FOREO斐珞尔官方旗舰店:LUNA露娜洁面仪
2018/03/11 全球购物
澳大利亚足球鞋和服装购物网站:Ultra Football
2018/10/11 全球购物
澳大利亚设计的婴儿和女孩的衣服:Oobi
2018/12/16 全球购物
在C++ 程序中调用被C 编译器编译后的函数,为什么要加extern "C"
2014/08/09 面试题
27个经典Linux面试题及答案,你知道几个?
2013/01/10 面试题
介绍一下MYSQL常用的优化技巧
2012/10/25 面试题
线程同步的方法
2016/11/23 面试题
军训鉴定表自我鉴定
2014/02/13 职场文书
毕业生写求职信的要点
2014/03/04 职场文书
死亡证明书样本说明
2014/10/18 职场文书
2014年银行年终工作总结
2014/12/19 职场文书
党内外群众意见范文
2015/06/02 职场文书