首页 > JavaScript > undefined 和 运算符
2010一月21

undefined 和 运算符

刚才在看《JavaScript 高级程序设计》,一本好书,想认真啃一下。在书中的第37页,谈到Boolean运算符的时候(NOT,AND,OR),有这么一句话:

使用NOT运算符时(!),如果运算数是undefined,发生错误

用多个浏览器,在地址栏里分别输入这样的语句进行测试:

javascript:alert(!undefined);

javascript:alert(!a); //IE报错,其余皆不报错

javascript:var a; alert(!a);

除了第二条语句外,无论是IE6,IE8还是 Firefox , Opera, Safari,都返回的是true,于是欣喜若狂,以为书中写的有问题。于是去翻其勘误表,结果发现没有这个错误,so 更加的开心。。-_-!!!

开开心心的去把成果告诉同事,结果半分钟左右,人家就来否定我了,这真是悲哀啊。。

同事的测试方法,在html页面里写如下代码:

<html>
    <head>
        <title> test boolean not undefined</title>
    </head>
    <body>
        <script type="text/javascript">
            alert(!a);
        </script>
    </body>
</html>

继续测试:

<html>
    <head>
        <title> test boolean not undefined</title>
    </head>
    <body>
        <script type="text/javascript">
            alert(!undefined);
        </script>
    </body>
</html>

继续测试:

<html>
    <head>
        <title> test boolean not undefined</title>
    </head>
    <body>
        <script type="text/javascript">
            var a ;
            alert(!a);
        </script>
    </body>
</html>

测试结果表明,只有第一种情况浏览器报错。。

深感无奈,刚才经同事指点,发现该书中第15页有如下话语:

对未声明过的变量,使用除 typeof 之外的其他运算符的话,会引起错误。因为其他运算符只能用于已声明的变量上。

文章作者:simaopig
本文地址:http://www.xiaoxiaozi.com/2010/01/21/1693/
版权所有 © 转载时必须以链接形式注明作者和原始出处!

12 Responses to “undefined 和 运算符”

  1. #1 Firm 回复 | 引用 Post:2010-01-21 23:37

    看不是很懂,打打酱油。

    [回复]

  2. #2 beetea 回复 | 引用 Post:2010-01-22 12:33

    辛苦啊,还在学习
    我放假了

    [回复]

  3. #3 LAONB 回复 | 引用 Post:2010-01-24 01:23

    今天上午刚要留言,一声噩耗,改。。。
    还没来得及留言就闪人了。 :???:

    [回复]

  4. #4 crossyou 回复 | 引用 Post:2010-01-25 16:16

    好久没来了,看来你是看错了啊!我也在学js哈

    [回复]

  5. #5 crossyou 回复 | 引用 Post:2010-01-25 16:22

    在ie地址栏里和 html页里有区别吗?

    [回复]

  6. #6 精辟句子 回复 | 引用 Post:2010-01-26 11:34

    看来门道很多。。 :mrgreen:

    [回复]

  7. #7 simaopig 回复 | 引用 Post:2010-01-26 11:45

    @crossyou
    理论上是没有区别。但是我决定以后尽量还是用页面了。呵呵。。

    [回复]

  8. #8 集团电话 回复 | 引用 Post:2010-01-27 15:47

    严格的说我看不懂……

    [回复]

  9. #9 simaopig 回复 | 引用 Post:2010-01-27 15:49

    @集团电话
    严格的说,一看到您的用户名,我还以为是SPAM呢。。

    [回复]

  10. #10 风也飘泊 回复 | 引用 Post:2010-01-29 10:26

    先点下广告,再留言…我可以吧

    话说这周我也解决了个JS的难题,哈哈,很有成就感

    [回复]

  11. #11 lostab 回复 | 引用 Post:2010-01-29 15:39

    Js和Css,要学习的还很多很多…

    [回复]

  12. #12 宁波SEO 回复 | 引用 Post:2010-01-30 22:28

    学习了~~ :mrgreen:

    [回复]

发表评论

:wink: :twisted: :roll: :oops: :mrgreen: :lol: :idea: :evil: :cry: :arrow: :?: :-| :-x :-o :-P :-D :-? :) :( :!: 8-O 8)