班哥的专栏

班哥就是班加罗尔,但班哥没去过班加罗尔。

陈先波ID:turbochen
188425次访问,排名345好友1人,关注者0
turbochen的文章
原创 79 篇
翻译 0 篇
转载 23 篇
评论 145 篇
班哥的公告


Locations of visitors to this page
最近评论
agjyfm:wow gold
ninolilin:hen hao zheng shi wo xiang yao de
qqj007:很感兴趣,正在学J2ME,能否发一份给我,我邮箱:0775x@163.com 谢谢~^_^
yangzhenYZ:流氓?现在问题是你买了内裤人家确把你小鸡鸡的大小尺寸,规格形状(可能还有图片^_^)传到人家数据库里了。

这个贴切的很啊 !!!!!!!!
wangpancom:班哥,你好,小弟最近正在学习BeahShel,由于上网不方便,不能经常上,你能给我发一份你学习时的总结吧?先谢了....QQ:413819965
文章分类
收藏
    相册
    等待图片
    深圳反日大游行
    文章插图
    五子棋游戏画面
    Framework
    Hibernate
    Struts
    开发工具
    Ant
    Eclipse
    JBoss
    Tomcat
    实用组件
    BeanShell
    JasperReport
    JDom
    JFreechart
    友情链接
    IBM DeveloperWorks
    Java.net
    JavaLobby
    JavaOne
    Java憩园
    TheServerSide.COM
    榕树下
    黎明时空
    存档
    软件项目交易
    订阅我的博客
    XML聚合  FeedSky
    订阅到鲜果
    订阅到Google
    订阅到抓虾
    订阅到BlogLines
    订阅到Yahoo
    订阅到GouGou
    订阅到飞鸽
    订阅到Rojo
    订阅到newsgator
    订阅到netvibes

    原创 AJAX备忘录(1)收藏

     | 旧一篇: 郑州市民状告比尔·盖茨

        近半年来,笔者主要在公司做基于AJAX的WEB应用。虽说我在2002年就开始用XmlHttpRequest技术来做Web页面,但那时好像还没有 AJAX这种说法,所以当时也没有比较系统而全面的运用XmlHttpRequest和JavaScript技术。经过这半年的磨练,对 JavaScript/Dom/DHtml/XmlHttpRequest这些技术虽谈不上炉火纯青,但自己也觉得是能够运用自如了。

        技术发展的很快,不知道明天又是什么技术在流行,不定哪天公司换了什么新产品,又要去追风逐浪了。现在的记性也是越来越差,思维灵敏度似乎也不像前几年了。所以近来想了一下,还是把目前还记得的一些AJAX技术记录下来,不管技术是否复杂,到时可以做为参考资料查询。也希望写在这里,与那些正在 AJAXing的XDJM们一起来共同学习探讨。

        本备忘录将主要记录与AJAX相关的技术(JavaScript,DOM,DHTML,XmlHttpRequest等)。本备忘录不是AJAX的教程,只是记录我知道的并认为是学习该技术应该知道的一些技术内容,也有可能是你认为很基础的技术。我将按我能想到的顺序写,将会写成一系列文章,每篇文章之间的内容可能是无序的,请见谅。

        初略想了一下,可能涉及到的内容如下:
    • JS语法的一些基本技巧。
    • JS性能相关的内容。
    • JS代码的动态运行,js文件的动态加载等。
    • JS对象的创建与多继承。
    • AJAX在FF和IE上的注意事项。
    • 动态操纵DOM对象。
    • 也有可能会专门讲讲XmlHttpRequest对象,也许不会。

        今天既然进来了,总不能让各位白跑一趟,就说说一些js语法方面的吧。

        js的类型检查

        其实会js的人都知道,js是宽松类型的动态语言,你可以不用显式的定义变量的数据类型。但实际上,我们使用已定义的变量时,总是会适时的检查它的类型是否符合我们的需要,以做出不同的行为。

        js本身提供了typeof()函数来检查变量的类型,但它的返回值不外乎6种:
            "number,"
            "string,"
            "boolean,"
            "object,"
            "function,"
            "undefined."
        下面是一些测试代码的输出结果,
    var a = new Date();
    print(
    typeof(a));
    输出: object
    var b;
    print(
    typeof(b));
    输出: undefined
    print(
    typeof(1.12));
    输出: number
    print(
    typeof(88));
    输出: number
    print(
    typeof(a==b));
    输出: boolean
    print(
    typeof("hello"));
    输出: string

        注:大家可能对我的代码中的pring语句觉得奇怪,其实我用的js测试器用一个web版的js测试工具,它的网址是:http://www.squarefree.com/shell/shell.html, 你可以直接在网页上输入js代码进行测试。

        其实更多时候,我们需要检查变量是属于哪种具体的变量类型,而不仅仅是得到object这个结果。我们可以这样写代码:

    var a = new Date();
    print(a.constructor 
    == Date)
    输出: true

       
        constructor是所有prototype对象所共有的属性。上面这种方式是通过比较此对象的构造函数是否与给定的对象相等来进行对象类型检查的,此种方式我们要事先知道可能的对象类型。所以如果要检查变量可能属于哪种对象类型,要采用if-else这样的语句结构:
    if(a.constructor == Array) 
        print(
    "a is Array");
    else if(a.constructor == String)
        print(
    "a is String");
    else if (a.constructor == Date)
        print(
    "a is Date");

        好了,前面是关于对象类型检查的。再来看看如何检查变量是否为空。

        记得好像有个叫黑格尔还是白格尔的人说过:存在的就是合理的。有时候,我们要对js变量的有效性进行检查。就是通常所说的变量是否为空。在js里,变量是否为"空"是一个比较模糊的概念。为什么呢?因为实际上很多时候我们并不想知道变量是真的为空还是什么来着,我们只要知道它是不是“存在”,也许这样说还是不准确,来看看这些代码就了解了:
    var a = new Date();
    print(a
    ?true:false);
    输出: true
    var b = null;
    print(b
    ?true:false);
    输出: false
    var d = true;
    print(d
    ?true:false); 
    输出: true
    var c = "hello";
    print(c
    ?true:false);
    输出: true
    var e = "";
    print(e?true:false);  //对于0长度字串返回false,否则为true
    输出: false
    var f = 1;
    print(f
    ?true:false); 
    输出: true
    var g = 0;
    print(g
    ?true:false);  //对于数值0,返回false,非0值为true
    输出: false
    var xx;
    print(xx?true:false);  //对于未定义的变量,返回false
    输出: false
       
        理解了上述代码,就可以在程序里灵活的检查对象的有效性,进而快速的做出相应处理,而不用写一堆类似if ( a!=null )或者if( a.length>0)这样啰嗦的检查语句了。
        提到条件语句的简化,我们来看一个例子:
    var a = ...; //a为一个字串
    var b = (a!=null || a.length>0)?a:"error";
        对于诸如此类的语句,其实可以简写成一行:
    var b = a||"error";
        为何可以这样写,大家稍微思考一下上面的例子和||运算符的作用就可以马上明白了。


        下次再接着写...          
      

    发表于 @ 2006年10月27日 22:41:00|评论(loading...)|编辑

     | 旧一篇: 郑州市民状告比尔·盖茨

    评论:没有评论。

    发表评论  


    当前用户设置只有注册用户才能发表评论。如果你没有登录,请点击登录
    Csdn Blog version 3.1a
    Copyright © 班哥