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 相关文章推荐
js删除所有的cookie的代码
Nov 25 Javascript
javascript中创建对象的几种方法总结
Nov 01 Javascript
js快速排序的实现代码
Dec 08 Javascript
js实现遮罩层弹出框的方法
Jan 15 Javascript
seajs加载jquery时提示$ is not a function该怎么解决
Oct 23 Javascript
深入理解jQuery.data() 的实现方式
Nov 30 Javascript
jquery-file-upload 文件上传带进度条效果
Nov 21 jQuery
Vue CLI3创建项目部署到Tomcat 使用ngrok映射到外网
May 16 Javascript
vue实现简单瀑布流布局
May 28 Javascript
vue 将多个过滤器封装到一个文件中的代码详解
Sep 05 Javascript
80行代码写一个Webpack插件并发布到npm
May 24 Javascript
js基于div丝滑实现贝塞尔曲线
Sep 23 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
PHP中通过ADO调用Access数据库的方法测试不通过
2006/12/31 PHP
深思 PHP 数组遍历的差异(array_diff 的实现)
2008/03/23 PHP
php的array数组和使用实例简明教程(容易理解)
2014/03/20 PHP
destoon利用Rewrite规则设置网站安全
2014/06/21 PHP
PHP制作万年历
2015/01/07 PHP
php判断表是否存在的方法
2015/06/18 PHP
php正则判断是否为合法身份证号的方法
2017/03/16 PHP
实例讲解PHP验证邮箱是否合格
2019/01/28 PHP
PHP PDOStatement::fetchColumn讲解
2019/01/31 PHP
JavaScript使用prototype定义对象类型
2007/02/07 Javascript
jquery 多行文本框(textarea)高度变化
2013/07/03 Javascript
jQuery Form 页面表单提交的小例子
2013/11/15 Javascript
JS注释所产生的bug 即使注释也会执行
2013/11/19 Javascript
Node.js和PHP根据ip获取地理位置的方法
2014/03/14 Javascript
JSONP跨域的原理解析及其实现介绍
2014/03/22 Javascript
JS实现鼠标点击展开或隐藏表格行的方法
2015/03/03 Javascript
AngularJs  Understanding Angular Templates
2016/09/02 Javascript
超全面的javascript中变量命名规则
2017/02/09 Javascript
响应式框架Bootstrap栅格系统的实例
2017/12/19 Javascript
使用JS location实现搜索框历史记录功能
2019/12/23 Javascript
重命名批处理python脚本
2013/04/05 Python
python检测远程udp端口是否打开的方法
2015/03/14 Python
最基础的Python的socket编程入门教程
2015/04/23 Python
用Python实现一个简单的多线程TCP服务器的教程
2015/05/05 Python
Windows下Python的Django框架环境部署及应用编写入门
2016/03/10 Python
Python 中Pickle库的使用详解
2018/02/24 Python
用python简单实现mysql数据同步到ElasticSearch的教程
2018/05/30 Python
对python中大文件的导入与导出方法详解
2018/12/28 Python
解决Django连接db遇到的问题
2019/08/29 Python
python如何通过pyqt5实现进度条
2020/01/20 Python
python中matplotlib实现随鼠标滑动自动标注代码
2020/04/23 Python
Python3实现建造者模式的示例代码
2020/06/28 Python
美国在线眼镜商城:Eyeglasses.com
2017/06/26 全球购物
豪华复古化妆:Besame Cosmetics
2019/09/06 全球购物
领导班子四风对照检查材料
2014/09/23 职场文书
合作意向协议书
2015/01/29 职场文书