- 語句
- 變量和數組
- 操作符
- 條件語句和循環語句
- 函數與對象
-------------------------------------------------------------
準備:
編寫JavaScript腳本只需要一個普通地文本編輯器和一個Web瀏覽器就足啦。
用JavaScript編寫的代碼必須通過HTML/XHTML文檔才能執行,有兩種方式可以做到這點。
1、第一種是將JavaScript代碼放到文旦<head>標簽中的<script>標簽之間:
<!DOCTYPE html>
<html lang = "en">
<head><meta charset = "utf-8"/><title>example</title><script>JavaScript goes here</script>
</head>
<body>Mark-up goes here...
</body></html>
2、一種更好的方式是將JavaScript代碼存為一個擴展名為.js的獨立文件。典型的做法是在文檔的<head>部分放一個<script>標簽
并把它的src屬性指向該文件:
<!DOCTYPE html>
<html lang = "en">
<head><meta charset = "utf-8"/><title>example</title><script src = "file.js"></script>
</head>
<body>Mark-up goes here...
</body></html>
3、但是最好的做法是把<script>標簽放在HTML文檔的最后,</body>標簽之前:
<!DOCTYPE html>
<html lang = "en">
<head><meta charset = "utf-8"/><title>example</title></head>
<body>Mark-up goes here...<script src = "file.js"></script>
</body></html>
這樣可以更快的加載頁面。why?
程序設計語言分為:解釋型和編譯型兩大類。
java或c++等語言需要一個編譯器(compile)。編譯器是一種程序,能夠把用Java等高級語言編寫出來的源代碼翻譯為直接在計算機上執行的文件。
解釋型程序設計語言不需要編譯器----它們僅需要解釋器。對于JavaScript語言,在互聯網環境下,Web瀏覽器負責完成有關的解釋和執行工作。瀏覽器中的JavaScript解釋器將直接讀入源代碼并執行。瀏覽器中如果沒有解釋器,JavaScript代碼就無法執行。
編譯型程序設計語言(Java、c) | 解釋性程序設計語言(JavaScript、Python) |
需要編譯器(Compiler)編譯器是一種程序,能夠把用Java等高級語言編寫出來的源代碼翻譯為直接在計算機上執行的文件。 | 不需要編譯器,僅需要解釋器,Web瀏覽器負責完成有關的解釋和執行工作。瀏覽器中的JavaScript解釋器將直接讀入源代碼并執行。 |
在代碼編譯階段可以發現錯誤 | 等到解釋器執行到有關代碼時才發現 |
速度快,可移植性好 | ? |
? | ? |
在語法方面,JavaScript與Java和C++極為相似。
注釋:在HTML文檔中,使用<!-這是JavaScript中的注釋->方式來進行注釋。在JavaScript使用//或/* */進行注釋。
變量:提前聲明變量是一種良好的編程習慣。例如:var mood;? (var 是一個關鍵字)
變量名的要求:區分大小寫,不允許包含空格或標點符號(美元符號"$"除外)。允許包含字母、數字、美元符號和下劃線(但第一個數字不允許是數字)。可采取駝峰式命名法(camel case)。
數據類型:
必須明確數據類型聲明的語言稱為強類型(strong typed)語言。JavaScript不需要進行類型聲明,因此他是一種弱類型(weakly typed) 語言。這意味我們可以在任何階段改變變量的數據類型。就是說對于一個變量,JavasScript并不在意它是一個字符串還是一個數或是一個布爾值。
JavaScript數據類型分為:字符串、數值、布爾值
1、字符串:包含零個或多個字符組成,字符包括(不限于)字母、數字、標點符號和空格。字符串必須包在引號里,可以是單引號或是雙引號,期間可能會使用到轉義字符(反斜線\),反斜線并不是字符串的一部分。一個好的編程習慣是使用雙引號來保住字符串。
2、數值:浮點、整數、負數、、
3、布爾值:兩個可選值、true或者是false。
從某種意義上將,計算機設計程序就是與布爾值打交道,所有的電子電路只能識別和使用布爾數據:電路中有還是沒有電流。
布爾值不是字符串。
數組:
字符串、數值還是布爾值都是標量(scalar),如果某個變量是標量,它在任意時刻就只能有一個值。
數組可以用一個變量來存儲一組值,在JavaScript中,數組可以用關鍵字Array聲明。聲明數組的同時可以指定數組的長度(length)例如:var beatles = Array(4);
另外也可以不聲明數組的長度,例如:var? beatles = Array();
我們甚至用不著明確我們是在創建數組。例如: var beatles = ["John","Paul","George",“Ringo”];
對象
數組是使用一個名字表示一組值,對象的每個值都是對象的屬性。例如:
var lennon = Object();
lennon.name = "Jonh";
lennon.year = "1940";
lennon.living = "false";
創建對象使用Object關鍵字。它不使用方括號和下標來獲取元素,而是像任何JavaScript對象一樣,使用點號來獲取屬性。
創建對象還有更簡潔的語法:就是花括號語法:
{propertyName:value,prpertyName:value}
lennon對象也可以寫成下面這樣: var lennon = {name:"John",living:false};
對象是一種非常重要的數據類型,對象是自包含的數據集合,包含在對象里的數據通過兩種形式訪問:屬性(property)和方法(method):
屬性就是隸屬于某個特定對象才能調用的變量;
方法是只有某個特定對象才能調用的函數。對象就是由一些屬性和方法組合在一起而構成的一個數據實體。
在JavaScript里,屬性和方法都使用“點”語法來訪問:
Object.property
Object.method()
JavaScript中提供了一系列預先定義好的對象,這些可以拿來用的對象就稱為內建對象(native object)。
數組就是一個內建對象,當我們使用new關鍵字去初始化一個數組時,其實就是在創建一個Array對象的新實例:
var beatles = new Array();
我們可以使用Array對象的length屬性來獲得數組的長度:beatles.length;
Array對象只是諸多JavaScript內建對象的一種,其他例子包括Math對象和Date對象,它們分別提供了非常有用的方法供人們處理數值和日期值,例如:Math對象的round方法可以把十進制數值舍入為一個與之最接近的整數:
var num = 7.561;
var num = Math.round(num);
alert(num);
Data對象可以用來存儲和檢索于特定日期和時間有關的信息。創建Date對象的新實例時,JavaScript解釋器將自動地使用當前日期和時間對它進行初始化:
var current_data = new Date();
Date對象提供了getDay()、gethHours()、getMonth()等一系列方法;以供人們用來檢索于特定日期有關的信息。例如:
getDay()方法可以告訴我們給定日期是星期幾:
var today = current_data.getDay();
宿主對象
除了內建對象,還可以在JavaScript腳本里使用一些已經預先定義好的其他對象。這些對象不是由JavaScript語言本身而是由它的運行環境提供的。具體到Web應用,這個環境就是瀏覽器。由瀏覽器提供的預定義對象稱為宿主對象(host object)。
宿主對象包括Form、Image和Element 等。我們可以通過這些對象去獲取網頁上表單、圖像和各種表單元素等信息。
另一種宿主對象也是用來獲得網頁上的任何一個元素的信息,就是document對象。