• 對象:

    對象是一組具有屬性和方法的經過組織的數據。

  • 默認對象:
  1. 日期對象;(日期基線:1970年1月1日00:00:00)

    建立日期對象(實例):

    格式:日期對象名稱=new Date([日期參數])

    日期參數:1.省略;
    2.英文-數值格式:月 日,公元年 [時:分:秒]
    如:
    today=new Date("October 1,2008 12:00:00")
           3.數值格式:公元年,月,日,[時,分,秒]
    如:
    today=new Date(2008,10,1)

    日期對象的方法:

      格式:日期對象名稱.方法([參數])

    獲取當地時間:
    getYear() 返回年份數
    getFullYear() 返回年份數
    getMonth() 返回月份數(0--11)
    getDate() 返回日期數(1--31)
    getDay() 返回星期數(0--6)
    getHours() 返回時數(0--23)
    getMinutes() 返回分數(0--59)
    getSeconds() 返回秒數(0--59)
    getMilliseconds() 返回毫秒數(0--999)
    getTime() 返回對應日期基線的毫秒
    Date.parse(日期字串) 返回對應日期基線的毫秒
    setTime(時間值) 指定一日期對象的值
    toGMTString() 以GMT格式表示日期對象
    toUTCString() 以GMT格式表示日期對象
  2. 數組對象;

    建立數組對象:

    格式1:數組對象名稱=new Array([元素個數])
    格式2:數組對象名稱=new Array([[元素1][,元素2,...]])
    格式3:數組對象名稱=[元素1[,元素2,...]]

    例:
    fruit=new Array(3);// fruit=new Array();
    fruit[0]="蘋果";
    fruit[1]="梨子";
    fruit[2]="橘子";

    fruit=new Array("蘋果","梨子","橘子");


         fruit=["蘋果","梨子","橘子"];

    數組對象的屬性:

    格式:數組對象名稱.屬性

    屬性:length  數組長度

    例:
    <Script>

    var fruit = new Array("蘋果", "梨子", "橘子");
    var i;

    for (i=0; i < fruit.length; i++) {
         document.write("fruit [", i, "] = ", fruit[i], "<br>")
    }

    </Script>


    數組對象的方法:

    格式:數組對象名稱.方法([參數])

    方法:
    join([分隔符]) 數組元素組合為字符串
    toString() 以字符串表示數組
    reverse() 數組反轉
    valueOf() 返回數組值

       例:
    <Script>

    var fruit = new Array("蘋果", "梨子", "橘子");

    document.write("<LI>", fruit.join());
    document.write("<LI>", fruit.join("、"));
    document.write("<LI>", fruit.toString());
    document.write("<LI>", fruit.reverse().join());
    document.write("<LI>", fruit.valueOf());

    </Script>

    二維數組:

    例:
    <Script>

    var fruit = new Array(3);
    fruit[0] = new Array("蘋果", 2);
    fruit[1] = new Array("梨子", 4);
    fruit[2] = new Array("橘子", 2);

    for (i=0; i < fruit.length; i++) {
       for (j=0; j < fruit[0].length; j++) {
         document.write("fruit [", i, "][", j, "] = ", fruit[i][j],"<br>");
       }
       document.write("<br>");
    }

    </Script>

  3. 字符串對象;

    建立字符串對象:

    格式:字符串對象名稱=new String(字符串常量)
    格式:字符串變量名稱="字符串常量"

    字符串對象的屬性:

    格式:字符串對象名稱.屬性

    屬性:length   字符串長度

    字符串對象的方法:

    格式:字符串對象名稱.方法

    方法:
    bold() 粗體
    italtics() 斜體
    strike() 刪除線
    fontsize(字級大小) 文字大小
    fontcolor(#rrggbb) 文字顏色
    sup() 上標
    sub() 下標
    toUpperCase() 大寫
    toLowerCase() 小寫
    charAt(索引) 返回索引位置的字符
    charCodeAt(索引) 返回索引位置的ASCII字符碼,十進制表示
    indexOf("字串"[,索引]) 返回字串在對象中的索引位置
    lastIndexOf("字串"[,索引]) 返回字串在對象中的索引位置(反向搜索)
    search("字串") 返回字串在對象中的索引位置
    replace("字串1","字串2") 字串2替換字串1
    slice(索引i[,索引j]) 返回索引i倒索引j-1的子串
    split(["字串"][,限制]) 將字串從對象中刪除
    substr(start[,length]) 返回特定長度的字串
    substring(索引i[,索引j]) 返回索引i倒索引j-1的子串
    link("url") 設置鏈接
    match(/匹配字符/)

    \d

    匹配一個數字字符。

    \D

    匹配一個非數字字符。

    \n

    匹配一個換行符。

    \r

    匹配一個回車符。

    \s

    匹配一個空格符。

    \S

    匹配任意非空格符。

    \t

    匹配一個table符。

    \W

    匹配任何非單詞符。

    \num

    匹配正整數num。

    /n/

    匹配八進制,十六進制,十進制的escape值。

    toString() 返回字符串
    valueOf() 返回字符串值

      例1:
    <Script>
    var str = "JavaScript";

    document.write(str.bold(),"<BR>");
    document.write(str.fixed(),"<BR>");
    document.write(str.fontcolor("red"),"<BR>");
    document.write(str.fontsize(5),"<BR>");

    </Script>


      例2:
    <Script>

    var str = "JavaScript";
    var num = 1234;

    document.write(str.toUpperCase(), "<BR>");
    document.write(num.toString().charAt(2),"<BR>");
    document.write(str.substring(0,4), "<BR>");

    </Script>


      例3:
    <Script>

    var str = "JavaScript";

    document.write(str, " 有 ", str.length, " 個字<BR>");
    document.write(str.fontcolor("green"), " 不是 ");
    document.write(str.substr(0,4).fontcolor("red"));
    document.write(" 也不是 ", str.replace("Java", "VB"));

    </Script>


      例4:
    <Script>

    var str = "hubert@abc.com.cn";
    var idx = str.search("@");
    var usr = str.substr(0,idx);

    document.write(usr.toUpperCase().fontsize(7), "<BR>");
    document.write("你的電子信箱是", str);

    </Script>


      例5:
    <Script>

    function isEmail(){
       var str = document.form1.add.value;
       if (str.indexOf("@") == -1)
         alert("請填寫正確的EMail地址");
       else
         alert("OK!");
    }

    </Script>

    <FORM name="form1">
    請輸入你的 EMail 地址:
    <INPUT TYPE="text" name="add">
    <INPUT TYPE="button" value="開始檢查" onClick="isEmail()">
    </FORM>

  4. 布爾對象;

    建立布爾對象:

    格式:布爾對象名稱=new Boolean(轉換值)
    轉換值:null、未定義、0、或false均轉換成false

    布爾對象的方法:

    格式:布爾對象名稱.方法
    方法:toString()
    valueOf()
    例:
    <Script>

    x = new Boolean();
    y = new Boolean(true);
    z = new Boolean(0);

    document.write(x, "<br>");
    document.write(y, "<br>");
    document.write(z, "<br>");

    </Script>

  5. 數學對象;(靜態對象)

    數學對象的屬性:

    格式:Math.屬性
    屬性:
    E 自然對數的底數
    LN2 2的自然對數
    LN10 10的自然對數
    LOG2E 以2為底e的對數
    LOG10E 以10為底e的對數
    PI 圓周率
    SQRT1_2 1/2的平方根
    SQRT2 2的平方根


    數學對象的方法:

    格式:Math.方法(參數)
    方法:
    ceil(數值) 大于等于該數值的最小整數
    floor(數值) 小于等于該數值的最大整數
    min(數值1,數值2) 最小值
    max(數值1,數值2) 最大值
    pow(數值1,數值2) 數值1的數值2次方
    random() 0倒1的隨機數
    round(數值) 最接近該數值的整數
    sqrt(數值) 開平方根
    abs、sin(弧度)、cos、tan、asin、acos、atan、exp、log

      例1:
    <Script>

    with (document) {
         write("<LI>2 的平方根值是 ", Math.sqrt(2));
         write("<LI>2 <sup>3</sup> = ", Math.pow(2,3));
         write("<LI>最接近 3.14 的整數是 ", Math.round(3.14));
    }

    </Script>


      例2:
    <Script>

    var now = new Date();
    var firstDay = new Date("Nov 10, 1999");
    var duration = now - firstDay;
    var msPerDay = 24 * 60 * 60 * 1000; //換算成毫秒
    days = Math.round(duration/msPerDay);

    document.write("本網站已經開幕" + days + "天了");

    </Script>

    例3:
    <Script>

    var promote = new Array(3);
    promote[0] = "拍賣區又有新貨到了,趕快來撿便宜啊......"
    promote[1] = "成為會員,馬上享受八折優惠,還可以參加抽獎!";
    promote[2] = "慶祝訪問人數突破十萬人次,填問卷就送大獎,快來啊!";

    index = Math.floor(Math.random() * promote.length);
    document.write(promote[index]);

    </Script>

  6. 數值對象;
  7. 函數對象;

      1. 自定義對象。

        • 自定義對象;
          • 構造函數定義對象類型;
          • 建立對象實例。
        • 例:
          <Script>

          function member(name, sex) {
               this.name = name;
               this.sex = sex;
          }

          var papa = new member("楊宏文", "男生");
          var mama = new member("黃雅玲", "女生");
          var doggy = new member("奇 奇", "寵物狗");

          document.write(papa.name);
          document.write("是", papa.sex);

          </Script>

        • 動態的定義對象屬性;
        • 例:
          為指定的對象實例定義屬性:
          papa.hobby="看電視";
          為對象定義屬性:
          member.prototype.hobby=null;
          papa.hobby="上網";
          mama.hobby="逛街";
          doggy.hobby="啃骨頭";

        • 定義對象的方法;
          • 構造函數定義對象方法名;
          • 建立方法的描述函數。
        • 例:
          <Script>

          function member(name, sex) {
             this.name = name;
             this.sex = sex;
             this.display = display;
          }

          function display() {
             var str = this.name + "是" + this.sex;
             document.write("<LI>" + str);
          }

          var papa = new member("楊宏文", "男生");
          var mama = new member("黃雅玲", "女生");
          var doggy = new member("奇 奇", "寵物狗");

          papa.display();
          mama.display();
          doggy.display();

          </Script>

      2. 利用對象原型(prototype)為默認對象定義屬性:

        <Script>

        String.prototype.replaceAll = strReplace;
        function strReplace(findText, replaceText) {
           var str = new String(this);
           while (str.indexOf(findText)!=-1) {
             str = str.replace(findText, replaceText);
           }
           return str;
        }

        myStr = "告訴你 - 如果你正在尋找一本能幫助你徹底研究" +
        "JavaScript的書籍,請你一定要認明碁峰的" +
        "JavaScript教學范本,讓你事半功倍,功力大增。";
        document.write("<LI>原稿是:<BLOCKQUOTE>" + myStr +"</BLOCKQUOTE>");
        document.write("<LI>利用Replace()將「你」改成「您」:"
        +"<BLOCKQUOTE>" + myStr.replace('你','您') +"</BLOCKQUOTE>");
        document.write("<LI>利用自定義的字符串方法 - 全部取代"
        +"<BLOCKQUOTE>" + myStr.replaceAll('你','您') +"</BLOCKQUOTE>");

        </Script>

 
  • 默認函數:
      1. 編碼函數 escape():將非字母、數字字符轉換成ASCII碼

        例:sample/unescape

      2. 譯碼函數 unescape():將ASCII碼轉換成字母、數字字符

        例:sample/unescape

      3. 求值函數 eval():

        格式:eval(<表達式>)

        例1:字符串運算
        <Script>

        x = 1 + 2;
        y = "1 + 2";
        z = eval("1 + 2");

        document.write("<LI>1 + 2 = ", x);
        document.write("<LI>\"1 + 2\" = ", y);
        document.write("<LI>eval(\"1 + 2\") = ", z);

        </Script>


        例2:對象操作
        <Script>

        function show(obj){
             var str=eval("document.form."+obj+".value");
             alert(str);
        }
        </Script>

        <form name="form" id="form">
        姓名:
        <input name="name" type="text" id="name">
        <input type="button" name="Button" value="Button" onclick=show("name")>
        </form>


      4. 數值判斷函數 isNaN():是否為數值

        格式:isNaN(<量>)

        例:
        <Script>

        var x = 15;
        var y = "黃雅玲";

        document.write("<LI>x 不是數值嗎?",isNaN(x));
        document.write("<LI>y 不是數值嗎?",isNaN(y));

        </Script>

      5. 整數轉換函數 parseInt():將不同進制(二、八、十六)的數值轉換成十進制整數

        格式:parseInt(數值字串[,底數])
        底數省略,則按內容轉換:
        0x 0X  十六進制  
        0  八進制
        其它  十進制

        例:
        <Script>

        // 二進位轉成十進位

        document.write("1101<sub>2</sub> = " ,parseInt("1101", 2),"<sub>10</sub><br>");

        // 十六進位轉成十進位

        document.write("BFFF<sub>16</sub> = " ,parseInt("BFFF", 16),"<sub>10</sub><br>");

        </Script>

      6. 浮點數轉換函數 parseFloat():將數值字串轉換成浮點數

        格式:parseFloat (數值字串)

        例:
        <Script>

        document.write(parseInt("3.1234A56"), "<br>");
        document.write(parseFloat("3.1234A56"), "<br>");

        </Script>



ExtJS教程- Hibernate教程-Struts2 教程-Lucene教程