1. 程式人生 > >基於RPGMakerMV的JavaScript基礎-2

基於RPGMakerMV的JavaScript基礎-2

第二章        JavaScript基礎知識
第一節        基本語法
區分大小寫

JavaScript是區分大小寫的,也就是說,大寫字母和小寫字母會被認為是不同的部分,例如變數名rename,Rename以及RENAME是不同的三個變數,雖然它們看起來含義相同。


空白

大多數情況下,JavaScript是忽略空白部分的,所以你可以使用空格鍵、製表鍵等來縮排程式碼,使其變得好看許多。例如圖2-1中的兩端程式碼,雖然功能是一樣的,但是下面的部分明顯比上面的部分簡潔、清晰。要是隔兩天你再來看,那麼你願意看哪一種呢?


註釋

註釋必須好好寫,註釋必須好好寫,註釋必須好好寫。(重要的事情說三遍)註釋是幫助你理解的一部分文字,並不在程式碼中起作用。


c式的/*與*/,或者c++式的//都可以,其中/*和*/可以跨行註釋其中的所有內容,//只能註釋在它後面的這一行的內容。


 
圖2-1
分號

分號對於JavaScript雖然不是必要的(事實上直譯器會自動補全),但是這裡推薦你老老實實的每句話後面加分號,否則會出現一些稀奇古怪的事情。


換行

換行用於把兩條語句隔開,以增加可讀性,一樣推薦你老老實實的換行,不要偷懶。另外,不要把一句話拆開兩行。


第二節        JavaScript語句

JavaScript有兩種語句,簡單語句和複合語句。


簡單語句就是看著簡單的,例如


  1. x=5;
複製程式碼

複合語句就是看著很複雜的,包含了多個結構的,例如。


  1. if(con==1){
  2.         x=5;
  3. }else{
  4.         x=8;
  5. }
複製程式碼

事實上這兩者沒什麼本質不同,你也不必要區分的那麼仔細,我也不打算詳細區別這兩個東西。


第三節        JavaScript的保留字

ECMA-262 描述了一組具有特定用途的關鍵字。這些關鍵字可用於表示控制語句的開始或結束,或者用於執行特定操作等。按照規則,關鍵字也是語言保留的,不能用作識別符號。以下就是ECMAScript的全部關鍵字(帶*號上標的是第5 版新增的關鍵字):


  • break       do        instanceof        typeof
  • case        else        new        var
  • catch        finally        return        void
  • continue        for        switch        while
  • debugger*        function        this        with
  • default        if        throw        delete
  • in        try

ECMA-262 還描述了另外一組不能用作識別符號的保留字。儘管保留字在這門語言中還沒有任何特定的用途。但它們有可能在將來被用作關鍵字。以下是ECMA-262 第3 版定義的全部保留字:


  • abstract        enum        int        short
  • boolean        export        interface        static
  • byte        extends        long        super
  • char        final        native        synchronized
  • class        float        package        throws
  • const        goto        private        transient
  • debugger        implements        protected        volatile
  • double        import        public

第5 版把在非嚴格模式下執行時的保留字縮減為下列這些:


  • class        enum        extends        super
  • const        export        import

在嚴格模式下,第5 版還對以下保留字施加了限制:


  • implements        package        public        interface
  • private        static        let        protected
  • yield

總之,這些詞都不要使用做自己的變數名字就好,否則會跟系統預定義的功能起衝突。


第四節        變數和資料型別
變數是儲存資訊的容器。

變數需要起一個變數名。變數名須以字母、 $ 或 _ 符號開頭,而且對大小寫敏感。


建議大家平常都用字母開頭,我個人比較討厭美元和短命鬼。


使用變數前需要宣告這個變數,我們使用var來宣告一個變數,例如:


  1. var a=5;
  2. var b=10;
  3. var c=a+b;
  4. var pi=3.14;
複製程式碼

就像這樣,我們就聲明瞭一系列的變數,並且給他們賦了相應的值。也可以不賦值來宣告一個變數,在後面的使用中再給它賦值,例如:


  1. var m;
  2. m=250;
複製程式碼
  1. 賦值要使用=,叫做賦值號,注意,這東西不是等號,不表示兩個相等,只是把右邊的值給左邊,或者說把左邊的變數設定成和右邊一樣的。
複製程式碼

資料型別就是資料的型別。

JavaScript有字串、數字、布林、陣列、物件、Null、Undefined這樣幾種基本資料型別。


而且,JavaScript擁有動態的資料型別,這意味著相同的變數可用作不同的型別,例如,前一刻它還是個數字,後面就變成字串了:


  1. var a;//宣告一個變數a
  2. a=5;//給a賦值5,此時a是個數字型別
  3. a="hehe";//給a賦值“hehe”,此時a是個字串型別
複製程式碼

字串

一種比較特殊的(我不喜歡特殊……)型別,用引號包裹著的內容來表示。單引號可以,雙引號也可以,例如:


  1. var carname="Bill Gates";
  2. var carname='Bill Gates';
複製程式碼

也可以用引號包裹引號,這種字串是裡面有引號的字串,例如:


  1. var answer="Nice to meet you!";
  2. var answer="He is called 'Bill'";
  3. var answer='He is called "Bill"';
複製程式碼
數字

這就是表示一個數字,沒什麼好說的,例如:


  1. var x1=34.00;      //使用小數點來寫
  2. var x2=34;         //不使用小數點來寫
複製程式碼

還可以用科學計數法,例如:


  1. var y=123e5;      // 12300000
  2. var z=123e-5;     // 0.00123
複製程式碼
布林

布林型別是邏輯運算的,只有兩個值:true和false。


陣列

陣列就是一些變數的順序組合,JavaScript中這樣來建立一個數組:


  1. var cars=new Array();
  2. cars[0]="Audi";
  3. cars[1]="BMW";
  4. cars[2]="Volvo";
複製程式碼

或者 (condensed array):


  1. var cars=new Array("Audi","BMW","Volvo");
複製程式碼

或者 (literal array):


  1. var cars=["Audi","BMW","Volvo"];
複製程式碼

陣列的下表是從0開始的,你可以用[]裡面加數字的形式來訪問數組裡面儲存的資料。


物件

物件由花括號分隔。在括號內部,物件的屬性以名稱和值對的形式 (name : value) 來定義。屬性由逗號分隔:


  1. var person={firstname:"Bill", lastname:"Gates", id:5566};
複製程式碼

上面例子中的物件 (person) 有三個屬性:firstname、lastname 以及 id。


空格和折行無關緊要。宣告可橫跨多行:


  1. var person={
  2. firstname : "Bill",
  3. lastname  : "Gates",
  4. id        :  5566
  5. };
複製程式碼

物件的訪問有兩種形式,一種是使用.來訪問,一種是使用[]來訪問,例如:


  1. name=person.lastname;
  2. name=person["lastname"];
複製程式碼
undefined和null

undefined 這個值表示變數不含有值,可以通過將變數的值設定為 null 來清空變數,例如:


  1. cars=null;
  2. person=null;
複製程式碼

宣告指定型別的變數時,可以使用new來宣告,例如:


  1. var carname=new String;
  2. var x=      new Number;
  3. var y=      new Boolean;
  4. var cars=   new Array;
  5. var person= new Object;
複製程式碼

另外,JavaScript中的所有變數都是物件。


第五節        物件

事實上,JavaScript中所有事物都是物件,物件就是擁有屬性和方法的資料。


屬性和方法

屬性是與物件相關的值,與遊戲人物的屬性類似。


方法是能夠在物件上執行的動作,與遊戲人物的技能類似。


舉例:汽車就是現實生活中的物件。


汽車的屬性:


  1. car.name=Fiat
  2. car.model=500
  3. car.weight=850kg
  4. car.color=white
複製程式碼

汽車的方法:


  1. car.start()
  2. car.drive()
  3. car.brake()
複製程式碼

同樣,遊戲中的人物也有生命值,攻擊力等屬性,也有攻擊,防禦,放火球等方法。這樣,我們就可以把遊戲中的人物當做一個物件來設計。


當你像這樣宣告一個 JavaScript 變數時:


  1. var txt = "Hello";
複製程式碼

你實際上已經建立了一個 JavaScript 字串物件。字串物件擁有已經按標準定義好的屬性 length。對於上面的字串來說,length 的值是 5。字串物件同時擁有若干個內建的方法。


屬性:


  1. txt.length=5
複製程式碼

方法:


  1. txt.indexOf()
  2. txt.replace()
  3. txt.search()
複製程式碼

除了使用JavaScript內建的幾種物件外,我們還可以自己定製自己的物件,例如剛才說到的遊戲人物,就可以像這樣定義:


  1. var person=new Object();
  2. person.name="Xiao Rou"
  3. person.hp=500;
  4. person.atc=10;
  5. person.def=5;
  6. person.attack=function(){//……具體動作}<