A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© yangaidongcumt 中级黑马   /  2013-6-16 20:23  /  1791 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 yangaidongcumt 于 2013-6-22 16:23 编辑

哪位比较了解js的可以帮忙详细介绍一下null和undefined的区别吗?谢谢了~~~

评分

参与人数 1技术分 +1 收起 理由
苏波 + 1

查看全部评分

5 个回复

倒序浏览
本帖最后由 蔡志涛 于 2013-6-17 13:36 编辑

null

是一个对象,但是为空。因为是对象,所以 typeof null 返回 'object' 。


null 参与数值运算时其值会自动转换为 0 ,因此,下列表达式计算后会得到正确的数值:

表达式:12 + null结果值:12

表达式:12 * null结果值:0

undefined

undefined是全局对象(window)的一个特殊属性,其值是未定义的。  typeof undefined 返回 'undefined' 。

评分

参与人数 1技术分 +1 收起 理由
苏波 + 1

查看全部评分

回复 使用道具 举报
undefined是未定意
null是对你空引用

这些怎么说呢..不好理解,但是你记下来了...做些例子就明白了
而且.. undefined  不等于 null

评分

参与人数 1技术分 +1 收起 理由
苏波 + 1

查看全部评分

回复 使用道具 举报
Undefined类型只有一个值,即undefined。当声明的变量还未被初始化时,变量的默认值为undefined。
Null类型也只有一个值,即null。null用来表示尚未存在的对象,常用来表示函数企图返回一个不存在的对象。
一个对象中没有指定的变量,而要使用,会出现 undefined
Html中没有的元素,通过document.getElementById("")查找的结果为: null
Html中有的元素,但是没有任何值,通过document.getElementById("")查找的结果为:” ”; 不是null
回复 使用道具 举报
null是空值,已定义,undefined是未定义,null会出现在运行错误中,undefined出现在编译错误中
回复 使用道具 举报
  CKeditor編輯器選項配置 PHP中CKEditor和CKFinder使用  如何编写兼容各主流邮箱的HTML邮件
js中null undefine的区别  2012-02-02 14:49:39|  分类: javascript/ajax/ |  标签: |字号大

小 订阅


Javascript代码  
null = = undefined  
true  
   
"NaN" = = NaN  
false  
   
5 = = NaN  
false  
   
NaN = = NaN  
false  
   
NaN != NaN  
true  
   
false = =0  
true  
   
true = =1  
true  
   
true = = 2  
false  
   
undefined = = 0  
false  
   
null = = 0  
false  
   
"5" = = 5  
true  






Null 数据类型
在 Jscript 中数据类型 null 只有一个值:null。关键字 null 不能用作函数或变量的名称。


包含 null 的变量包含“无值”或“无对象”。换句话说,该变量没有保存有效的数、字符串、boolean、数组或对象。可以通过给一个变量赋 null 值来清除变量的内容。


请注意,在 Jscript 中,null 与 0 不相等(与在 C 和 C++ 中不同)。同时应该指出的是,Jscript中 typeof 运算符将报告 null 值为 Object 类型,而非类型 null。这点潜在的混淆是为了向下兼容。


Undefined 数据类型
如下情况使返回 undefined 值:


对象属性不存在,
声明了变量但从未赋值。
注意不能通过与 undefined 做比较来测试一个变量是否存在,虽然可以检查它的类型是否为“undefined”。

  CKeditor編輯器選項配置 PHP中CKEditor和CKFinder使用  如何编写兼容各主流邮箱的HTML邮件
js中null undefine的区别  2012-02-02 14:49:39|  分类: javascript/ajax/ |  标签: |字号大

小 订阅


Javascript代码  
null = = undefined  
true  
   
"NaN" = = NaN  
false  
   
5 = = NaN  
false  
   
NaN = = NaN  
false  
   
NaN != NaN  
true  
   
false = =0  
true  
   
true = =1  
true  
   
true = = 2  
false  
   
undefined = = 0  
false  
   
null = = 0  
false  
   
"5" = = 5  
true  






Null 数据类型
在 Jscript 中数据类型 null 只有一个值:null。关键字 null 不能用作函数或变量的名称。


包含 null 的变量包含“无值”或“无对象”。换句话说,该变量没有保存有效的数、字符串、boolean、数组或对象。可以通过给一个变量赋 null 值来清除变量的内容。


请注意,在 Jscript 中,null 与 0 不相等(与在 C 和 C++ 中不同)。同时应该指出的是,Jscript中 typeof 运算符将报告 null 值为 Object 类型,而非类型 null。这点潜在的混淆是为了向下兼容。


Undefined 数据类型
如下情况使返回 undefined 值:


对象属性不存在,
声明了变量但从未赋值。
注意不能通过与 undefined 做比较来测试一个变量是否存在,虽然可以检查它的类型是否为“undefined”。在以下的代码范例中,假设程序员想测试是否已经声明变量 x :


// 这种方法不起作用
if (x == undefined)
    // 作某些操作
// 这个方法同样不起作用- 必须检查
// 字符串 "undefined"
if (typeof(x) == undefined)
    // 作某些操作
// 这个方法有效
if (typeof(x) == "undefined")
    // 作某些操作
考虑将 undefined 值与null做比较。


someObject.prop == null;
如下情况时,比较的结果为 true,


如果属性 someObject.prop 包含 null 值,
如果属性 someObject.prop 不存在。
要检查一个对象属性是否存在,可以使用新的 in 运算符:
if ("prop" in someObject)
// someObject 有属性 'prop'


在JavaScript中,null与undefined一度使人迷惑。下面的分析,有利于你更清晰的认知它(或者让你更迷惑):


- null是关键字;undefined是Global对象的一个属性


- null是对象(空对象, 没有任何属性和方法);undefined是undefined类型的值。试试下面的代码:


       document.writeln(typeof null); //return object
       document.writeln(typeof undefined); //return undefined


- 对象模型中,所有的对象都是Object或其子类的实例,但null对象例外:
       document.writeln(null instanceof Object); //return false


- null“等值(==)”于undefined,但不“全等值(===)”于undefined:
       document.writeln(null == undefined); //return true
       document.writeln(null === undefined); //return false


- 运算时null与undefined都可以被类型转换为false,但不等值于false:
       document.writeln(!null, !undefined); //return true,true
       document.writeln(null==false); //return false
       document.writeln(undefined==false); //return false


自己测测下面的练习题:


<body>
<input name="test" id="test" value="" />
<script>
var a=document.getElementById('test').value;
alert(a=='');//true
alert(a==null);//false
alert(a==undefined);//false

document.write(null=='');//false
document.write(null==undefined);//true
document.write(''==undefined);//false
</script>
</body>
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马