JavaScript的基本文法

來源:互聯網
上載者:User

1.1 什麼是JavaScript
    JavaScript是一種描述性語言,也是一種基於對象(Object)和事件驅動(Event Driven)的,並具有安全效能的指令碼語言。它與HTML超文字標記語言 (HTML)一起,在一個Web頁面中連結多個對象,與Web客戶實現互動。無論是在用戶端還是在伺服器端,JavaScript應用程式都要下載到瀏覽器的用戶端執行,從而減輕了伺服器端的負擔。
    1992年,一家Nombas的公司開發了一種叫做Cmm的嵌入式指令碼語言,並把它捆綁在一個叫做CEnvi的產品中。它首次向人們展示了這種語言的威力,之後Nombas把Cmm的名字改成了ScriptEase。
    當Netscape在1995年把JavaScript首次運用在互連網上時,因為它可以同時在瀏覽器和伺服器端使用,所以立即得到了人們的認可,從此JavaScript變成了互連網的必備組件。隨著用戶端指令碼的需求逐漸增大,微軟進軍瀏覽器,發布了IE 3.0,並搭載了一個JavaScript的複製版,叫做JScript。此時,有三種不同的JavaScript版本同時存在,Netscape的JavaScript、IE的JScripte和CEnvi的ScriptEase。
    JavaScript沒有一個標準來統一其文法或特性,而這三種不同的版本恰恰突出了這個問題。為瞭解決這一問題,JavaScript 1.1作為一個草案提交給歐洲電腦製造商協會(ECMA),最終ECMA-262標準應運而生,該標準定義了叫做ECMAScript的指令碼語言。之後國際標準組織及國際電子電機委員會(ISO/IEC)也採納ECMAScript作為標準,從此JavaScript開始踏入了標準時代。

1.2 JavaScript的組成

①ECMAScript標準
    儘管ECMAScript是一個重要的標準,但它並不是JavaScript唯一的部分,當然也不是唯一被標準化的部分。實際上,一個完整的JavaScript是由以下三個不同的部分組成的。
    ①核心文法(ECMAScript)②瀏覽器物件模型(BOM)③文件物件模型(DOM)

ECMAScript標準
    ECMAScript的一種開放的、國際上廣為接受的、標準的的指令碼語言規範。它不與任何具體的瀏覽器綁定,實際上,它也沒有提到用於任何使用者輸入輸出的方法。那麼ECMAScript標準主要對哪些內容實行了規範呢?簡單地說,ECMAScript主要描述了一下內容。
    ①文法。
    ②變數和資料類型。
    ③運算子。
    ④邏輯控制語句。
    ⑤關鍵字、保留字。
    ⑥對象。
    ECMAScript是一個描述,規定了指令碼語言的所有屬性、方法和對象的標準,因此在使用Web用戶端指令碼語言編碼時一定要遵循ECMAScript標準。

②瀏覽器物件模型(BOM)
    BOM是Browser Object Model(瀏覽器物件模型)的簡稱,提供了獨立於內容與瀏覽器視窗進行互動的對象,使用瀏覽器物件模型可以實現與HTML的互動。它的作用是將相關的元素組織封裝起來,提供給程式設計人員使用,從而減輕開發人員的勞動,提高設計Web頁面的能力。BOM是一個分層結構,如所示
Window
      ║
  ╭═════════════════════════════╮
history document
   location
  ║
  ╭═════════════════════════════╮
link  form
   anchor
  ║
  ╭═════════════════════════════╮
botton    checkbox     text    …… textarea   radio    select

可以看到,Window對象是整個BOM的核心,在瀏覽器中開啟網頁後,我們首先看到的瀏覽器視窗,即最頂層的Window對象。其次就是我們看到的網頁文檔內容,即Document文檔,它的內容包括一些超連結(link)、表單(form)、錨(anchor)等,表單由文字框(Text)、選項按鈕(radio)、按鈕(button)等表單元素組成。在瀏覽器對象結構中,除了document文檔對象外,Window對象之下還有兩個對象:地址對象(location)和曆史對象(history),它們對應於IE瀏覽器中的地址欄和前進/後退按鈕,我們可以利用這些對象的方法,實作類別似的功能。因此使用BOM通常可實現如下功能。
    ①彈出新的瀏覽器視窗。
    ②移動、關閉瀏覽器視窗以及調整視窗的大小。
    ③在瀏覽器視窗中實現頁面的前進、後退功能。

③文件物件模型(DOM)
    DOM是Document Object Model(文件物件模型)的簡稱,是HTML文件物件模型(HTML DOM)定義的一套標準方法,用來訪問和操縱HTML文檔。DOM由全球資訊網聯盟(World Wide Web Consortium,W3C)定義,最新的瀏覽器都支援第一級和第二級DOM(第一級和第二級DOM是一種標準),這樣使用JavaScript就可以控制整個網頁。
    自從W3C建立了DOM標準(W3C DOM)以及DOM得到所有瀏覽器的支援以來,DOM在實際應用中越來越廣泛。DOM提供了一組按樹狀結構組織的HTML文檔,樹狀結構中每一個對象稱為一個節點,每一個對象都有一個或多個屬性和方法。如所示
        文檔:document
      ║
    根節點:<HTML>
  ║
  ╭═════════════════════════════╮
元素:<head> 元素:<body>
  ║           ╭═════════╮
元素:<title>                  屬性:href═══元素<a>           元素<h1>
  ║   ║    
      ║
文本:“文檔標題”               文本:我的連結     文本:我的標題

在DOM中,無論對象是什麼,每一個對象都被稱為一個節點。節點又分為根節點、父節點、子節點、兄弟節點和葉子節點。最頂層的節點稱作根節點,如所示,這裡的根節點是<html>、<head>和<body>是父節點<heml>的兩個子節點。擁有相同的父節點的兩個或兩個以上的節點稱作兄弟節點,如<head>和<body>就是一對兄弟節點。位於樹狀結構底部的節點稱作葉子節點,如"文檔標題"、"href"、"我的串連"、"我的標題"。除了根節點和葉子節點外,其他每個節點都有一個父節點、一個或多個子節點。

1.3 指令碼的基本結構
    通常,JavaScript代碼是用<script>標籤嵌入HTML文檔中的。可以將多個指令碼嵌入到一個文檔中,只需將每個指令碼都封裝在<script>標籤中即可。瀏覽器在遇到<script>標籤時,將逐行讀取內容,直到遇到</script>結束標籤為止。然後,瀏覽器將檢查JavaScript語句的文法,如果有任何錯誤,就會在警告框中顯示;如果沒有錯誤,瀏覽器將編譯並執行。
    1.指令碼的基本結構
    指令碼的基本結構如下:
    <script type="text/JavaScript">
    <!--JavaScript語句;
    -->
    </script>
    <!--語句-->是注釋標籤。這些標籤用於告知不支援JavaScript瀏覽器忽略標籤中包含的語句。<!--表示開始注釋標籤,-->則表示結束注釋標籤。這些標籤是可選的,但最好在指令碼中使用這些標籤。目前大多數瀏覽器都支援JavaScript,但使用注釋標籤可以確保不支援JavaScript的瀏覽器會忽略嵌入。到HTML文檔中的JavaScript語句。
    2.指令碼的執行原理
    在指令碼的執行過程中,瀏覽器用戶端與應用伺服器端採用請求/響應模式進行互動。
    (1)瀏覽器接受使用者的請求:一個使用者在瀏覽器的地址欄中輸入要訪問的頁面(頁面中包含JavaScript指令碼程式)。
    (2)向伺服器端請求某個包含JavaScript指令碼的頁面,瀏覽器把請求訊息(要開啟的頁面資訊)發送到應用伺服器端,等待伺服器端的響應。
    (3)應用伺服器端響應訊息,既包含有指令碼的HTML文本發送到瀏覽器用戶端,然後由瀏覽器從上至下逐條解析HTML標籤和JavaScript指令碼,並將頁面效果呈現給使用者。
    使用用戶端指令碼的好處有以下兩點。
    (1)含指令碼的頁面只要下載一次即可,這樣能減少不必要的網路通訊。
    (2)指令碼程式是由瀏覽器用戶端執行,而不是由伺服器端執行,因此能減輕伺服器端的壓力。
    3.在網頁中引用JavaScript的方式
    (1)使用<Script>標籤
    (2)使用外部JavaScript檔案
    (3)直接在HTML中使用:<input name="btn" type="button" value="彈出訊息框" onclick="JavaScript:alert("歡迎你")">
    
1.4 JavaScript核心文法
    1.JavaScript是一種弱類型語言,沒有明確的資料類型,也就是說,在聲明變數時,不需要指定變數類型,變數的類型由賦給變數的值決定。這一點不象JAVA和C#那樣,在聲明變數的同時需指定變數的資料類型。
    在JavaScript中,變數是使用關鍵字var聲明的。下面是JavaScript聲明變數的文法格式。
    var 合法的變數名;
    其中,var是聲明變數所使用關鍵字;"合法的變數名"是遵循JavaScript中變數名規則的變數名,JavaScript中的變數名與java變數的命名規則相同。可以在聲明變數的同時為變數賦值,這叫做變數的初始化;也可以在稍後的指令碼中為變數賦值。
    聲明變數的同時為變數賦值,例如:
        var width = 20; //在聲明變數的同時賦值
        var x,y,z=10;//一次聲明多個變數時,使用逗號分隔
    需要強調的是:JavaScript區分大小寫,所以大小寫不同的變數名表示不容的變數。另外,由於JavaScript是一種弱類型語言,所以允許不聲明變數而直接使用,系統將會自動聲明該變數。例如
        var=88;   //沒用聲明變數X,直接使用。
    變數可以不經聲明而直接使用,但這種方法很容易出錯,也很難尋找排錯,不推薦使用。在使用變數之前,請先聲明後使用,這是良好的編程習慣。
    2.資料類型
    雖然JavaScript是一種弱類型語言,在聲明變數時不需要聲明變數的資料類型,而是由賦給變數的值決定,但有時也需要檢測變數的具體資料類型(通過typtof運算子)。在JavaScript中,提供了常用的基礎資料型別 (Elementary Data Type),這些資料類型如下所示。
    (1)typeof運算子
       ECMAScript提供了typeof運算子來判斷一個值或者變數究竟屬於哪種資料類型。文法為:typeof(變數或值)
    (2)undefined(未定義類型)
       undefined類型只有一個值,即undefined。當聲明的變數為初始化時,該變數的預設值是undefined。
    (3)null(空類型)
       只有一個值的類型是null,是一個表示"什麼都沒有"的預留位置,可以用來檢測某個變數是否被賦值。值undefined實際上是值null派生來的,因此ECMAScript把他們定義為相當的。
    (4)number(數實值型別)
       ECMA-262中定義的最特殊的類型是number類型,這種類型既可以表示32位的整數,還可以表示64位的浮點數。下面的代碼聲明了存放整數值和浮點數值的變數。
       var iNum = 23;
       var iNum = 23.0;
       整數也可以表示為八進位或十六進位,八進位首數字必須是0,其後的數字可以是任何八位元字(0-7),十六進位首數字也必須是0,後面是任意的十六進位數字和字母(0-9和A-F)。
       var iNum = 070;  //070等於十進位的56
       var iNum = 0x1f;  //0x1f等於十進位的31
       對於非常大或非常小的數,可以用科學計數法表示浮點數,也是number類型。另外一個特殊值NaN(Not a Number)表示非數,它是number類型;
    (5)string(字串類型)
    在JavaScript中,字串是一組被引號(單引號或雙引號)括起來的文本。
    (6)boolean(布爾類型)
     boolean型資料被稱為布爾型資料或者邏輯型資料,boolean類型是ECMAScript中最常用的類型之一,它只有兩個值true和false。

2.1 運算子號
  常用的運算子
類別 運算子號
算數運算子 +、-、*、/、%、++、--
比較子 >、<、>=、<=、==、!=
邏輯運算子 &&、||、!
賦值運算子 =

2.2 常用的輸入/輸出
    1.警告(alert)
    alert()方法會建立一個特殊的小視窗,該視窗帶有一個字串和一個"確定"按鈕
    alert()方法的基本文法格式如下:
    alert("提示資訊")
    該方法將彈出一個警告對話方塊,其內容可以是一個變數的值,也可以是一個運算式的值,如果顯示其他類型的值,需要將其轉換為字串型。
    警告對話方塊是當前啟動並執行網頁彈出的,在對該對話方塊做出處理前。當前網頁將不可用,後面的代碼也不會被執行,只有對警告的對話方塊進行處理後(單擊"確定"按鈕或直接關閉),當前網頁才會繼續顯示後面的內容。
    2.提示(prompt)
    prompt()方法會彈出一個提示對話方塊,等待使用者輸入一行資料
    prompt()方法的基本文法格式為:
    prompt("提示資訊","輸入框的預設資訊");
    該方法的傳回值也可以被引用或儲存到變數中,例如:
    var color=prompt("請輸入你喜歡的顏色","紅色");
    prompt()方法的第一個參數text顯示在對話方塊上,通常是一些提示資訊:第二個參數出現在使用者輸入的文字框中,且被選中,作為預設值使用。如果省略第二個參數,提示對話方塊的輸入行中會出現"undefined",可以將第二個參數的值設定為空白字串,例如:var color=prompt("請輸入你喜歡的顏色","");
    如果使用者單擊"取消"按鈕或直接關閉提示對話方塊,該方法將返回Null;如果使用者單擊"確定"按鈕,該方法將返回一個字串型資料。
    
----------------------------------總結--------------------------------------
1.JavaScript由三部分組成,分別是ECMAScript、DOM和BOM,其中ECMAScript是JavaScript的標準規範,BOM與瀏覽器視窗進行互動,DOM可以控制頁面中的每一個元素,實現頁面中的各種動態效果。
2.在HTML頁面中JavaScript有三種方式,直接把JavaScript代碼寫在標籤<script>和</script>之間,使用外部JavaScript檔案或直接把簡短的JavaScript代碼寫在HTML標籤中。
3.JavaScript的核心文法有變數的聲明和賦值、資料類型、邏輯控制語句、注釋,在JavaScript中代碼區分大小寫,並且建議每一句的末尾使用分號(;)結束。
4.在JavaScript中待用的輸入/輸出是prompt()方法和alert()方法。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.