天天看點

JavaScript學習筆記(第二章文法學習)

JavaScript學習筆記(第二章文法學習)

文法了解:所謂沒有規矩不成方圓,社會的和諧安定依靠法律的限制保護,白話了解一下,在各種語言體系中對于各種表達都有着一定的文法限制,比如在我們大家學習的英語中,有各種文法的學習,這個國中階段我們就學習過各種句式,賓語從句,定語從句等等,到了大學我們在應付各種英語考試時對于文法的學習要求更加“苛刻”。(部落客至今還沒有過六級,感覺很大一部分原因是對于各種文法知識的淡忘導緻閱讀能力每況愈下,丢分嚴重,很難受······)這裡廢話有些多了。簡單了解一下,在英語中的文法也就是一種造句的規則,隻有我們按照這個規則來寫句子,其他人才能了解我們想要表達的意思。這裡我們再來說一下有關各種程式設計語言的文法規則,部落客本身對于程式設計是非常抗拒的,但專業需要,沒有辦法,隻能硬着頭皮學習一點,目前課程接觸C#、C語言(二級剛剛考完不久,還不知道過沒過。。。。)比較多,但是越學越懵逼,聽聞javascript文法比較容易學,也容易入手,沒有那麼燒頭發,比較适合做前端開發,也就比較适合女孩子(漢子),尤其像我這種“有美感”的女孩子。。。。是以前來嘗試學習一下,探索一下,沒準就感興趣了呢。。。。。傳說javascript的文法跟C系列語言的文法有很多相似之處,也算有了點基礎,心裡有了點底氣,那麼遷移到程式設計文法上來又該怎樣了解呢?我們将這文法類比于現實社會的法律,而運作環境就是程式設計世界的社會環境,要想這個“社會環境”安定有序的進行下去,我們就必須要遵守對應的“法律制度”,這樣我們的代碼才能順利的運作。

1.1 語句

語句,即一系列指令。是構成腳本的基本機關。

在英語文法中要求每個句子開頭字母要大寫,句子以一個句号标志結束。在javascript中的文法要求相對來說比較寬松,可以将不同的語句放在不同的行上進而起到不同句子的分隔作用。例:

first statement

second statement

C系列語言中,我們是以分号(;)來表示語句的結束(分隔語句)。同樣,在javascript中,當我們将不同的語句寫在同一行上時,我們也需要用分号(;)來分隔語句。

first statement;second statement;

為了更好的追蹤javascript腳本的執行順序,我們建議将不同的語句分别寫在不同行上,并用分号(;)分隔。

1.2 注釋

javascript中的注釋和C系列語言中的注釋作用一緻,解釋器對于注釋部分忽略不運作,注釋隻為編譯者提供解釋提示的作用。注釋主要有以下幾種格式:

//之後一行内容為注釋内容

中間為注釋内容(用于多行注釋)

<!–這是javascript中的注釋 (單行注釋)

<!--這是HTML中的注釋 -->

這是HTML中的注釋(允許跨行注釋)

還是建議用// 或

進行注釋,避免發生混淆。

1.3 變量

所謂變量,字面意思了解就是可以改變的量。

比如我的身高是随着年齡的增長而變化的,那麼我們可以設身高為一個變量hight,這個變量的值可以随着時間而變化,今年為40,明年為60。這個給變量添加具體值的過程叫做“指派”。一個變量被指派後可以說這個變量包含這個值,例:

hight=40;

此時變量hight 中便包含40這個值。

在C系列語言中,在使用變量前我們需要提前對這個變量進行聲明,也就是對這個變量提前做一個介紹,說明變量的類型。例:

var hight;

但javascript中,不強制要求我們對變量進行聲明,若在使用該變量前未對其進行聲明,在為該變量指派時,聲明操作将自動進行。但要想做一個優秀的程式員,我們還是盡量在使用變量前對其做一個聲明。例:

var hight;

hight=40;

為了使程式更加簡化,我們可以将聲明與指派同時進行,如下:

var hight=40;

若要同時對多個變量進行聲明和指派,可以采用逗号隔開。這一點與C系列語言使用方法一緻,不在過多贅述。

在javascript中,變量有以下幾點文法限制:

1. 字母大小寫限制:在javascript中,變量名區分大小寫,例如變量Hight和hight是完全不同的變量;

2. 空格和标點符号限制:在javascript中變量名中不允許包含空格和标點符号;

3. 變量名開頭不允許為數字: javascript中變量名允許包含字母,數字,下劃線和美元符号($)。

1.4 資料類型

javascript語言為一種弱類型語言,這也就是這種語言相對來說比較簡單的原因。所謂弱類型語言就是對于變量的資料類型沒有強制要求的語言,javascript語言不需要進行類型聲明,我們可以在任何階段改變變量的資料類型。例:

var hight=40;

hight=“forty”;

這種情況在javascript中是合法的,但是在C語言中是不合法的,是以C語言就是強類型語言,也就是在C語言中使用變量必須明确類型聲明。

下面我們将對javascript中常用的幾種資料類型進行說明:

  1. 字元串:由零個或多個字元組成。字元包括字母,數字,标點符号和空格。但是字元串必須放在引号裡(單引号和雙引号均可)。若字元串中包含單引号,則将整個字元串放在雙引号裡;若字元串中包含雙引号,則把整個字元串放在單引号裡。例:

    var hight=“i don’t konw”;

    var Hight=‘i ‘’ know’;

    若想用單引号包含單引号,或者雙引号包含雙引号的字元串,需要對字元串裡的引号進行轉義,轉義符号為反斜線(/)。例:

    var hight=‘i don/‘t konw’;

    var Hight="i /’’ know";

    這裡再次說明,一個優秀的程式員所編的程式符号都是統一整齊的,用雙引号就一直用雙引号,用單引号就一直用單引号。友善别人閱讀也友善自己哈!

  2. 數值:在javascript中給一個變量指派,可以是整數,小數,負數,例:

    var hight=40;

    var hight=40.56;

    var hight=-40;

  3. 布爾值:可以是true false ,0 1,yes no,但隻可兩者取其一,要注意布爾值指派不可以用引号!例:

    var hight=true;

    var hight=“true”;

    兩者是完全不一樣的指派。

1.5數組:字元串,數值和布爾值都是标量,某一時刻隻能存儲一個值,若想要一個變量存儲一組值,我們需要用數組來存儲。

在javascript中,我們可以用Array關鍵字來聲明數組,聲明同時可以指定數組初始元素的個數,例:

var abc=Array(3);

當然若不知初始元素的個數,我們在聲明數組時也可以不用指定數組初始元素的個數,例:

var abc=Array();

在我們使用數組時,有時需要給數組的元素指派,這個向數組中填充元素的過程叫做填充。填充時我們要指定填充位置和填充的元素值,這裡與C語言中給數組元素指派是一樣的,例:

var abc=Array(3);

abc[0]=45;

abc[1]=“hight”;

abc[2]=true;

這裡我們看到,在一個數組裡面元素的資料類型是沒有強制要求的,可以是數值,字元串和布爾值的混合體!!!哈哈哈,是不是比C語言裡面的數組使用簡單多了。

這就結束了嗎???怎麼可能,還可以更簡單,下面我們再來看看其他為數組指派的騷操作,例:

var abc=Array(45,“hight”,true);

var abc=[45,“hight”,true];

以上兩種指派方式和前例是一毛一樣的效果。

1.數組中的元素還可以是變量,例:

var n=“hight”;

abc[0]=n;

2.數組元素的值還可以是另一個數組元素的值,例:

var abc=[45,“hight”,true];

var def=Array(3);

def[1]=abc[1];

3.數組内還可以包含其他數組,例:

var abc=[45,“hight”,true];

var g=[];

g[0]=abc;

4.關聯數組:通常我們用調取數組的下标來周遊數組元素,但是如果我們不能清楚的記住想要周遊的數組元素的下标數,那麼讀取數組元素将是一件令人非常肉疼的事,這裡關聯數組的作用就凸顯出來了,簡單來說就是将數組的下标值改用字元串來表示,取代數字下标,這樣便提高了數組的可讀性和可操作性,例:

var abc=Array();

abc[“number”]=45;

abc[“shuxing”]=“hight”;

abc[“buerzhi”]=true;

這種方法雖然看起來很好用,但是還是不建議使用,具體原因我也沒看懂,不過看起來這樣聲明數組還是有些怪怪的。

1.6對象:與數組很相似,都是用一個名字表示一組值,對象的每個值都是對象的一個屬性,例:

var abc =Object();

abc.number=45;

abc.shuxing=“hight”;

abc.buerzhi=true;

下面是進化版的對象表示法:

var abc ={number:45,shuxing;“hight”,buerzhi:true};

經過三個小時的奮筆疾書,終于把文法這部分看完了,繼續堅持吧。

繼續閱讀