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获取元素样式属性值的方法
Dec 25 Javascript
js操作label给label赋值及取label的值示例
Nov 07 Javascript
javascript日期处理函数,性能优化批处理
Sep 06 Javascript
jQuery mobile 移动web(4)
Dec 20 Javascript
使用jQuery的easydrag插件实现可拖动的DIV弹出框
Feb 19 Javascript
基于Javascript实现文件实时加载进度的方法
Oct 12 Javascript
Bootstrap popover用法详解
Dec 22 Javascript
微信小程序倒计时功能实现代码
Nov 09 Javascript
angular.js和vue.js中实现函数去抖示例(debounce)
Jan 18 Javascript
微信小程序表单弹窗实例
Jul 19 Javascript
解决Vue.js父组件$on无法监听子组件$emit触发事件的问题
Sep 12 Javascript
vue 使某个组件不被 keep-alive 缓存的方法
Sep 21 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 Redis内存占用
2017/03/23 PHP
PHP实现的下载远程文件类定义与用法示例
2017/07/05 PHP
HR vs CL BO3 第二场 2.13
2021/03/10 DOTA
Windows Live的@live.com域名注册漏洞 利用代码
2006/12/27 Javascript
JS实现下拉框的动态添加(附效果)
2013/04/03 Javascript
jquery 实现二级/三级/多级联动菜单的思路及代码
2013/04/08 Javascript
基于jQuery选择器的整理集合
2013/04/26 Javascript
js实现连续英文字符自动换行兼容ie6 ie7和firefox
2013/09/06 Javascript
jquery放大镜效果超漂亮噢
2013/11/15 Javascript
jquery果冻抖动效果实现方法
2015/01/15 Javascript
javascript内置对象操作详解
2015/02/04 Javascript
jQuery如何使用自动触发事件trigger
2015/11/29 Javascript
浅谈js数据类型判断与数组判断
2016/08/29 Javascript
对称加密与非对称加密优缺点详解
2017/02/06 Javascript
微信小程序 转发功能的实现
2017/08/04 Javascript
基于Vue实例对象的数据选项
2017/08/09 Javascript
在Vue项目中取消ESLint代码检测的步骤讲解
2019/01/27 Javascript
解决VUE双向绑定失效的问题
2019/10/29 Javascript
Vue2.4+新增属性.sync、$attrs、$listeners的具体使用
2020/03/08 Javascript
element-ui中dialog弹窗关闭按钮失效的解决
2020/09/22 Javascript
Python验证码识别处理实例
2015/12/28 Python
浅谈pycharm下找不到sqlalchemy的问题
2018/12/03 Python
Python面向对象之类和对象属性的增删改查操作示例
2018/12/14 Python
利用pandas将非数值数据转换成数值的方式
2019/12/18 Python
如何打包Python Web项目实现免安装一键启动的方法
2020/05/21 Python
Python读取Excel数据并生成图表过程解析
2020/06/18 Python
python3中for循环踩过的坑记录
2020/12/14 Python
python线程优先级队列知识点总结
2021/02/28 Python
Mountain Warehouse波兰官方网站:英国户外品牌
2019/08/29 全球购物
巴西Bo.Bô官方在线商店:经营奢侈品时尚业务
2020/03/16 全球购物
物流管理专业毕业生自荐信
2014/03/04 职场文书
优秀学生党员先进事迹材料
2014/05/29 职场文书
教师专业技术工作总结2015
2015/05/13 职场文书
信息技术远程培训心得体会
2016/01/09 职场文书
画错魏国疆域啦!《派对咖孔明》动画因作画失误于官网致歉
2022/04/07 日漫
cypress测试本地web应用
2022/06/01 Javascript