javascript权威指南 学习笔记之null和undefined


Posted in Javascript onSeptember 25, 2011
<!doctype html> 
<html> 
<head> 
<meta http-equiv="content-type" content="text/html; charset=UTF-8"> 
<title>javascript之null和undefined</title> 
</head> 
<body> 
<script type="text/javascript"> 
/** 
 ******************null关键字******************** 
JavaScript中的关键字null是一个特殊的值,它表示“无值”。null常常被看作对象类型的一个特殊值,即代表“无对象”的值。 
null是一个独一无二的值,有别于其他所有的值。如果一个变量的值为null,那么就说明它的值不是有效的对象、数组、数字、字符串 
和布尔值 中的 任何一种。 
当null用于布尔环境时,它被自动转换为false.当它用于一个数字环境时,它被自动转换为数字0.当它用于一个字符串环境时,它 
被自动转换为"null". 
*/ 
var $null = null; 
//用于布尔环境 
if($null){ 
document.write("当null用于布尔环境时,不转换"); 
}else{ 
document.write("当null用于布尔环境时,它被自动转换为false");//此句将被输出 
} 
//用于数字环境 
if(0 + $null == 0){ 
document.write("<br/>当null用于数字环境时,它被自动转换为0");//此句将被输出 
}else{ 
 document.write("<br/>当null用于数字环境时,不转换");  
} 
//用于字符串环境 
document.write("<br/>用于字符串环境:"+$null);//null 
//null的typeof:object 
document.write("<br/>$null的数据类型为:"+typeof $null);//object 
/** 
*****************undefined****************** 
undefined是一个特殊的值,它不是javascript中的关键字。以下几种情况需要注意: 
1.使用了已经声明但还没有赋值的变量时 
2.使用了一个并不存在的对象属性时 
以上二种情况,返回的都是undefined这个值。undefined值不同于null. 
当未定义的值用于布尔环境时,它会自动转换为false; 
当它用于一个数字环境时,它会自动转换为NaN;(NaN的解释:NaN 属性是代表非数字值的特殊值。该属性用于指示某个值不是数字。 
当它用于一个字符串环境时,它会自动转换为"undefined"; 
*/ 
var $aaa;//声明了,但没有初始化。 
var $bbb = "测试";//声明了,并且初始化了。 
var $obj = new Object(); 
document.write("<br/>$aaa的类型:"+typeof $aaa+"、$aaa的值:"+$aaa);//undefined、undefined 
document.write("<br/>$bbb的类型:"+typeof $bbb+"、$bbb的值:"+$bbb);//string、测试 
document.write("<br/>$obj的一个不存在的属性myProp的类型:"+typeof $obj.myProp+"、$obj.myProp的值:"+$obj.myProp);//undefined、undefined 
//document.write("<br/>输出一个并未声明的变量的值:"+$abc);//运行错误 
/** 
undefined 与 null的联系 
虽然undefined和null值不同,但是==运算符却将两者看作相等。 
var obj = new Objec(); 
obj.prop == null //返回true 
如果要严格区分undefiend和null,则需要用到====运算符或者typeof 
var obj = new Objec(); 
obj.prop === null //返回false 
typeof obj.prop //输出undefined 
typeof null //输出object 
*/ 
</script> 
</body> 
</html>
Javascript 相关文章推荐
计算新浪Weibo消息长度(还可以输入119字)
Jul 02 Javascript
jquery模拟SELECT下拉框取值效果
Oct 23 Javascript
js/jquery去掉空格,回车,换行示例代码
Nov 05 Javascript
js操作table元素实现表格行列新增、删除技巧总结
Nov 18 Javascript
浅谈JS原生Ajax,GET和POST
Jun 08 Javascript
VUE JS 使用组件实现双向绑定的示例代码
Jan 10 Javascript
基于Vue单文件组件详解
Sep 15 Javascript
vue自定义全局共用函数详解
Sep 18 Javascript
vue中,在本地缓存中读写数据的方法
Sep 21 Javascript
vuejs简单验证码功能完整示例
Jan 08 Javascript
redux.js详解及基本使用
May 24 Javascript
Javascript基于OOP实实现探测器功能代码实例
Aug 26 Javascript
利用JS自动打开页面上链接的实现代码
Sep 25 #Javascript
javascript权威指南 学习笔记之javascript数据类型
Sep 24 #Javascript
最简单的js图片切换效果实现代码
Sep 24 #Javascript
zShowBox 图片放大展示jquery版 兼容性
Sep 24 #Javascript
也说JavaScript中String类的replace函数
Sep 22 #Javascript
javascript笔记 String类replace函数的一些事
Sep 22 #Javascript
Prototype的Class.create函数解析
Sep 22 #Javascript
You might like
TMDPHP 模板引擎使用教程
2012/03/13 PHP
PHP中设置时区,记录日志文件的实现代码
2013/01/07 PHP
使用php get_headers 判断URL是否有效的解决办法
2013/04/27 PHP
PHP Echo字符串的连接格式
2016/03/07 PHP
php实现无限级分类查询(递归、非递归)
2016/03/10 PHP
PHP之header函数详解
2021/03/02 PHP
JavaScript中的new的使用方法与注意事项
2007/05/16 Javascript
JavaScript 乱码问题
2009/08/06 Javascript
javascript call方法使用说明
2010/01/11 Javascript
node.js中的fs.fstatSync方法使用说明
2014/12/15 Javascript
JS+CSS实现仿新浪微博搜索框的方法
2015/02/24 Javascript
JS组件Bootstrap实现弹出框和提示框效果代码
2015/12/08 Javascript
JavaScript+html5 canvas制作色彩斑斓的正方形效果
2016/01/27 Javascript
再谈Javascript中的基本类型和引用类型(推荐)
2016/07/01 Javascript
bootstrap datetimepicker实现秒钟选择下拉框
2017/01/05 Javascript
AugularJS从入门到实践(必看篇)
2017/07/10 Javascript
详解从Vue.js源码看异步更新DOM策略及nextTick
2017/10/11 Javascript
Vue通过ref父子组件拿值方法
2018/09/12 Javascript
jQuery实时统计输入框字数及限制
2020/06/24 jQuery
[02:36]DOTA2英雄基础教程 斯拉克
2013/11/29 DOTA
[43:26]完美世界DOTA2联赛PWL S2 Forest vs Rebirth 第二场 11.20
2020/11/23 DOTA
numpy.where() 用法详解
2019/05/27 Python
PyQt5 QTableView设置某一列不可编辑的方法
2019/06/25 Python
Python实现基于SVM的分类器的方法
2019/07/19 Python
Python秒算24点实现及原理详解
2019/07/29 Python
Python 寻找局部最高点的实现
2019/12/05 Python
keras得到每层的系数方式
2020/06/15 Python
html5-Canvas可以在web中绘制各种图形
2012/12/26 HTML / CSS
HTML5单页面手势滑屏切换原理
2016/03/21 HTML / CSS
这段代码难道不该打印出56吗
2013/02/27 面试题
linux面试题参考答案(10)
2016/10/26 面试题
安全员岗位职责
2013/11/11 职场文书
大学生读书笔记范文
2015/07/01 职场文书
聘用合同范本
2015/09/21 职场文书
pytest配置文件pytest.ini的详细使用
2021/04/17 Python
K8s部署发布Golang应用程序的实现方法
2021/07/16 Golang