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 相关文章推荐
12种不宜使用的Javascript语法整理
Nov 04 Javascript
对 jQuery 中 data 方法的误解分析
Jun 18 Javascript
基于Jquery+Ajax+Json实现分页显示附效果图
Jul 30 Javascript
script标签属性用type还是language
Jan 21 Javascript
初步了解javascript面向对象
Nov 09 Javascript
Javascript 基础---Ajax入门必看
Jul 06 Javascript
jquery 点击元素后,滚动条滚动至该元素位置的方法
Aug 05 Javascript
vuex进阶知识点巩固
May 20 Javascript
详解微信小程序-扫一扫 wx.scanCode() 扫码大变身
Apr 30 Javascript
小程序根据手机机型设置自定义底部导航距离
Jun 04 Javascript
在Vue环境下利用worker运行interval计时器的步骤
Aug 01 Javascript
Openlayers学习之地图比例尺控件
Sep 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
第七节 类的静态成员 [7]
2006/10/09 PHP
php 字符串压缩方法比较示例
2014/01/23 PHP
64位windows系统下安装Memcache缓存
2015/12/06 PHP
php 猴子摘桃的算法
2017/06/20 PHP
javascript 限制输入和粘贴(IE,firefox测试通过)
2008/11/14 Javascript
Input 特殊事件onpopertychange和oninput
2009/06/17 Javascript
简单介绍JavaScript的变量和数据类型
2015/06/03 Javascript
js中跨域方法原理详解
2015/07/19 Javascript
Jquery使用小技巧汇总
2015/12/29 Javascript
使用jQuery中的wrap()函数操作HTML元素的教程
2016/05/24 Javascript
angular.js分页代码的实例
2016/07/27 Javascript
几种二级联动案例(jQuery\Array\Ajax php)
2016/08/13 Javascript
老生常谈angularjs中的$state.go
2017/04/24 Javascript
JS实现加载时锁定HTML页面元素的方法
2017/06/24 Javascript
使用jquery+iframe做一个ajax上传效果(实例)
2017/08/24 jQuery
layDate日期控件使用方法详解
2018/11/15 Javascript
仿vue-cli搭建属于自己的脚手架的方法步骤
2019/04/17 Javascript
vue的keep-alive中使用EventBus的方法
2019/04/23 Javascript
12个提高JavaScript技能的概念(小结)
2019/05/09 Javascript
微信小程序设置滚动条过程详解
2019/07/25 Javascript
[01:44]剑指西雅图 展望TI之CIS战队专访
2014/06/25 DOTA
利用Python脚本在Nginx和uwsgi上部署MoinMoin的教程
2015/05/05 Python
Python实现批量执行同目录下的py文件方法
2019/01/11 Python
使用 Python 玩转 GitHub 的贡献板(推荐)
2019/04/04 Python
python里 super类的工作原理详解
2019/06/19 Python
django 信号调度机制详解
2019/07/19 Python
python字典的值可以修改吗
2020/06/29 Python
HTML5本地存储之Web Storage应用介绍
2013/01/06 HTML / CSS
KIEHL’S科颜氏官方旗舰店:源自美国的顶级护肤品牌
2018/06/07 全球购物
诺心蛋糕官网:LE CAKE
2018/08/25 全球购物
Radley英国官网:英国莱德利小狗包
2019/03/21 全球购物
英语翻译系毕业生求职信
2013/09/29 职场文书
经典励志格言:每日一句,让你每天充满能量
2019/08/16 职场文书
六年级情感作文之500字
2019/10/23 职场文书
pandas中DataFrame检测重复值的实现
2021/05/26 Python
C#连接ORACLE出现乱码问题的解决方法
2021/10/05 Oracle