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 相关文章推荐
JavaScript 用Node.js写Shell脚本[译]
Sep 20 Javascript
关于事件mouseover ,mouseout ,mouseenter,mouseleave的区别
Oct 12 Javascript
JavaScript、jQuery与Ajax的关系
Jan 24 Javascript
基于JavaScript实现文字超出部分隐藏
Feb 29 Javascript
JS 实现随机验证码功能
Feb 15 Javascript
基于layer.js实现收货地址弹框选择然后返回相应的地址信息
May 26 Javascript
vue数字类型过滤器的示例代码
Sep 07 Javascript
vue 设置proxyTable参数进行代理跨域
Apr 09 Javascript
Webpack devServer中的 proxy 实现跨域的解决
Jun 15 Javascript
详解使用jest对vue项目进行单元测试
Sep 07 Javascript
怎样在vue项目下添加ESLint的方法
May 16 Javascript
JavaScript实现手风琴效果
Feb 18 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计算两个整数的最大公约数常用算法小结
2015/03/05 PHP
PHP版单点登陆实现方案的实例
2016/11/17 PHP
laravel-admin 在列表页添加自定义按钮的例子
2019/09/30 PHP
jQuery基本过滤选择器使用介绍
2013/04/18 Javascript
JavaScript包装对象使用介绍
2013/08/29 Javascript
超级简单实现JavaScript MVC 样式框架
2015/03/24 Javascript
JS创建事件的三种方法(实例代码)
2016/05/12 Javascript
JS遍历页面所有对象属性及实现方法
2016/08/01 Javascript
详解用webpack2.0构建vue2.0超详细精简版
2017/04/05 Javascript
微信小程序之数据双向绑定与数据操作
2017/05/12 Javascript
ComboBox(下拉列表框)通过url加载调用远程数据的方法
2017/08/06 Javascript
JavaScript中数组常见操作技巧
2017/09/01 Javascript
基于Vuejs的搜索匹配功能实现方法
2018/03/03 Javascript
JS实现为动态创建的元素添加事件操作示例
2018/03/17 Javascript
解决vue+element 键盘回车事件导致页面刷新的问题
2018/08/25 Javascript
利用chrome浏览器进行js调试并找出元素绑定的点击事件详解
2021/01/30 Javascript
浅析JavaScript异步代码优化
2019/03/18 Javascript
前端Electron新手入门教程详解
2019/06/21 Javascript
Vue实现点击当前元素以外的地方隐藏当前元素(实现思路)
2019/12/04 Javascript
JavaScript实现沿五角星形线摆动的小圆实例详解
2020/07/28 Javascript
vue 子组件watch监听不到prop的解决
2020/08/09 Javascript
[04:41]2014DOTA2国际邀请赛 Liquid顺利突围晋级正赛
2014/07/09 DOTA
使用python在校内发人人网状态(人人网看状态)
2014/02/19 Python
你所不知道的Python奇技淫巧13招【实用】
2016/12/14 Python
Django使用HttpResponse返回图片并显示的方法
2018/05/22 Python
python版DDOS攻击脚本
2019/06/12 Python
Python3实现打印任意宽度的菱形代码
2020/04/12 Python
PyTorch中clone()、detach()及相关扩展详解
2020/12/09 Python
应届生幼儿园求职信
2013/11/12 职场文书
《歌唱二小放牛郎》教学反思
2014/04/19 职场文书
生物技术专业求职信
2014/06/10 职场文书
人事主管岗位职责说明书
2014/07/30 职场文书
咖啡店创业计划书范文
2014/09/15 职场文书
2014年政工师工作总结
2014/12/18 职场文书
房租涨价通知
2015/04/23 职场文书
使用pd.merge表连接出现多余行的问题解决
2022/06/16 Python