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

 更新时间:2011年09月25日 23:01:59   作者:  
JavaScript中的关键字null是一个特殊的值,它表示“无值”。null常常被看作对象类型的一个特殊值,即代表“无对象”的值。
复制代码 代码如下:

<!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>

相关文章

  • 基于jquery的页面划词搜索JS

    基于jquery的页面划词搜索JS

    这个脚本是网上的代码修改的,兼容各主流浏览器,优化页面异步加载的文字的检索提示框定位,根据选择文字位置与屏幕尺寸计算检索提示框定位。
    2010-09-09
  • jQuery $.each遍历对象、数组用法实例

    jQuery $.each遍历对象、数组用法实例

    这篇文章主要介绍了jQuery $.each遍历对象、数组用法实例,本文讲解了在有参数和无参数的情况下遍历对象及遍历数组的例子及each方法的几种常用用法,需要的朋友可以参考下
    2015-04-04
  • jQuery中ajax的post()方法用法实例

    jQuery中ajax的post()方法用法实例

    这篇文章主要介绍了jQuery中ajax的post()方法用法,以实例形式较为详细的分析了post()方法的功能、参数及使用技巧,需要的朋友可以参考下
    2014-12-12
  • jquery 层次选择器siblings与nextAll的区别介绍

    jquery 层次选择器siblings与nextAll的区别介绍

    jquery 层次选择器包括siblings与nextAll,本文为大家介绍下具体的使用方法,想学习的朋也可以参考下,希望对大家有所帮助
    2013-08-08
  • jQuery添加删除DOM元素方法详解

    jQuery添加删除DOM元素方法详解

    这篇文章主要介绍了jQuery添加删除DOM元素方法,结合实例形式较为详细的分析讲述了jQuery关于DOM元素节点的添加与删除相关技巧,需要的朋友可以参考下
    2016-01-01
  • jquery 简单的进度条实现代码

    jquery 简单的进度条实现代码

    jquery其实是有个进度条插件的,叫做jqueryprogressbar.js,可是想练习一下,就没有用,自己写了点代码。这个代码其实是参考别人的,因为自己的JS基础不是很好。
    2010-03-03
  • jQuery获取file控件中图片的宽高与大小

    jQuery获取file控件中图片的宽高与大小

    本文通过实例代码告诉大家如何利用jQuery获取file控件中图片的宽高与大小,在我们上传之前就可以检查上传图片的大小,高度,宽度是否适合我们的要求了,下面是关于判断图片的宽高大小的代码。
    2016-08-08
  • jQuery实现的调整表格行tr上下顺序

    jQuery实现的调整表格行tr上下顺序

    表格元素是大家比较常用的元素,有时候表格中的行需要调整顺序,下面通过代码实例介绍一下如何利用jquery实现此功能
    2016-01-01
  • jQuery+formdata实现上传进度特效遇到的问题

    jQuery+formdata实现上传进度特效遇到的问题

    这篇文章主要介绍了jQuery+formdata实现上传进度特效遇到的问题的相关资料,需要的朋友可以参考下
    2016-02-02
  • 基于jQuery实现的文字按钮表单特效整理

    基于jQuery实现的文字按钮表单特效整理

    这里给大家整理了10个热门的基于jQuery实现的文字、按钮、表单等特效的代码,集合起来方便大家对比使用
    2014-12-12

最新评论