5D艺术网首页
商城
|
资讯
|
作品
|
博客
|
教程
|
论坛
登录
注册
加为好友
发短消息
来自:
性别:秘密
最后登录:2007-04-12
http://hbbalfred.5d.cn/
首页
|
新闻
|
话题
|
博客
|
相册
|
艺术作品
|
社交关系
|
留言板
|
社交圈
2004/11/07 | undefined的研究,谈其于null,NaN之间的差异
类别(Flash)
|
评论
(2)
|
阅读(200)
|
发表于 12:15
在云开's blog看到研究
undefined与null的区别
里面说到
引用:
如下情况返回 undefined 值:
一、对象属性不存在,
二、声明了变量但从未赋值。
其实还有第三种方法就是....声明一个变量再赋值为undefined
var c = undefined;
而这样子做,有一个地方显然于前两者不同
就是在for..in循环种...如果是先两者(第一种情况不提了)假设声明一个数组
var array1 = new Array(10);
for(var i in array1) trace(array1[i]); // 没有循环
trace(array1.length) // 数组长度为10
/////////////////////////////////////////////////////
var array2 = new Array(10);
for(var i=0; i<10; i++) array2[i]=undefined;
for(var i in array2) trace(array[i]); // 输出十个undefined
trace(array2.length) // 数组长度为10
一种是没有赋值,也就是undefined,一种是赋值为undeinfed,同样为undefined,for...in作出了不同的反应
大概是因为for...in查询的是对象中的元素,而不是值,同样的undefined,前一种是没有元素意义上的undefined,是真正的undefined
而后一种是有元素且值为undefined,差不多就是骗人用的
那么结合云开所说的,我理解了一下
如果声明一个变量为null是为了吸引garbage collector,释放资源
那么声明一个变量为undefined就是为了让他处于待命状态,而不准备释放资源
hoho...结合之前发现的一个
NaN bug
...这下更好的理解了
undefined , Nan , null之间的差异
0
评论
Comments
日志分类
首页
[76]
Say
[10]
Flash
[31]
PHP
[3]
XML
[2]
Cool
[12]
Weapon
[10]
Other
[8]