首页 > JS&HTML > undefined 和 运算符

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 之外的其他运算符的话,会引起错误。因为其他运算符只能用于已声明的变量上。

  1. Firm 一 21st, 2010 @ 23:37 | #1

    看不是很懂,打打酱油。

  2. beetea 一 22nd, 2010 @ 12:33 | #2

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

  3. LAONB 一 24th, 2010 @ 01:23 | #3

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

  4. crossyou 一 25th, 2010 @ 16:16 | #4

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

  5. crossyou 一 25th, 2010 @ 16:22 | #5

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

  6. 精辟句子 一 26th, 2010 @ 11:34 | #6

    看来门道很多。。 :mrgreen:

  7. simaopig 一 26th, 2010 @ 11:45 | #7

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

  8. 集团电话 一 27th, 2010 @ 15:47 | #8

    严格的说我看不懂……

  9. simaopig 一 27th, 2010 @ 15:49 | #9

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

  10. 风也飘泊 一 29th, 2010 @ 10:26 | #10

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

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

  11. lostab 一 29th, 2010 @ 15:39 | #11

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

  12. 宁波SEO 一 30th, 2010 @ 22:28 | #12

    学习了~~ :mrgreen:

评论提交中, 请稍候...

留言

可以使用的标签: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>
Trackbacks & Pingbacks ( 0 )
  1. 还没有 trackbacks