js:undefined,void
一直在用undefined,虽然我讨厌这个变量,因为它经常给我带来一些错误。偶尔写程序的时候alert调试了半天却发现有个变量未定义。
好吧。我承认,这其实是我的错,呵。
但是void我却从来不用,原因很简单,不会。
今天翻看“月影”的《王者归来》 才有所体会,原来这个void就是执行其内的表达式,但是却不返回,呵。很奇怪的东东。
然而,一知半解是人最大的怪癖,于是我翻开了《权威指南》,(SORRY,这个懒得找链接了)
void是一个一元运算符,用途比较特殊,(我感觉是毛病),它总是舍弃运算数的值,然后返回undefined。这种运算符常用在客户端的javascript:URL中。在这里可以计算表达式的值,而浏览器不会显示出这个值。
其另一个用途是专门生成一个undefined值。其定义在ECMAScript v1而undefined则是在ECMAScript v5中定义的。
所以考虑到向后兼容,作者认为void(0)比undefined属性更有用。
然而继续查阅发现undefined这个神奇的东东居然不是JS的保留字,而是一个特殊的全局变量,其初始值就是undefined。
因此可以给该变量赋值。。
如果无法确定你所使用的undefined是否被别人更改过,确保其值就是undefined(这句话真绕)。
只需要自己声明一个即可:var undefined;
只声明变量,并不初始化它,就可以确保其值是undefined。
唉,该死的undefined。。。
文章作者:simaopig
本文地址:http://www.xiaoxiaozi.com/2009/04/02/44/
版权所有 © 转载时必须以链接形式注明作者和原始出处!
小子兄弟,我们交换个链接吧,我已做好了。
[回复]
呵,好的。我也做好了。呵,你发消息之前我就来做了。以后互相学习。
[回复]
小子,链接已加好…(这句话怎么听起来像是要账的来了?)
void?从没用过,除了加在空白链接的A标签上…
[回复]
你这也忒深奥了,我只喜欢做点低俗的事,曲高和者寡
[回复]
呵,我的也加好了。就是刚才放错地方了。呵。
[回复]
低俗的东西大多好看。。
[回复]
我也用的是lz的解决方法,灵感是来自于那篇Google Closure的批判文,里面也提到undefined不是保留字
[回复]
@d
呵呵,因为undefined不是保留字,所以要想其值不被更改,最简单的方法就是声明一个未赋值的变量。。方便啊。 :smile:
[回复]