什么是JavaScript?
JavaScript是一種具有面向對象(OOP)能力的,解釋型的程序設計語言。
解釋型:直接讀它的代碼,而不是像java等需要經過編譯器編譯成.class文件后,執行.class文件。
它是基於對象和事件驅動並具有相對安全性的客戶端()腳本語言。
事件驅動:比如點擊按鈕,選中文本等的操作,觸發一些事件。(艾瑪,我就這么理解的)
相對安全:刪除文件文件夾等諸如此類的相對惡意的操作是沒有的。
腳本語言:不像java需要jdk環境一樣需要特殊的環境,只需要有瀏覽器即可。
JavaScript的特點
松散性:變量不需要明確指定一個類型。
對象屬性:JavaScript中的對象把屬性名映射為任意的屬性值。像哈希表和關聯數組。
關聯數組:填充數組時為每個元素明確的給出下標,而這種下標不僅僅局限於數字,也可以是字符串,例如:arr[“name”]=“Kity”,arr[“age”]=23。
繼承機制:基於原型。(不懂……學到后面應該會懂吧呵呵呵……據我所聽說,還有什么原型鏈,應該跟這個有關系。今天的筆記太沒營養了,我嫌棄自己!)
JavaScript核心
ECMAScript(語法部分)+DOM(文檔對象模型)+BOM(瀏覽器對象模型)
ECMAScript:與瀏覽器沒有依賴關系,定義的是語言的基礎,組成部分有:語法,類型,語句,關鍵字,保留字,操作符,對象等。
DOM:Document Object Model 文檔對象模型。針對XML但是經過擴展用於HTML的API(Application Programming Interface)應用程序編程接口。W3C對DOM的定義是“一個與系統平台和編程語言無關的接口,程序和腳本可以通過這個接口動態的訪問和修改文檔的內容、結構和樣式”。
BOM:Browser Object Model 瀏覽器對象模型。使用BOM可以控制瀏覽器顯示頁面以外的部分。
<script></script>標簽放置的位置
有三種放置方法:
1.放在<head>標簽中,將腳本直接寫在<script type="text/javascript">標簽里面。
2.放在<head>標簽中,將腳本寫在js文件中,通過<script type="text/javascript">標簽的src屬性引入。
3.引入外部js文件,<script type="text/javascript">標簽放在html文檔的最后,</body>標簽之前,這樣能使瀏覽器更快的加載頁面。
引入js文件的方法,優點是:可維護性高,可緩存(加載一次,無需再加載),方便擴展。
瀏覽器使用的渲染引擎
基於Webkit:Safari、Chrome
基於Gecko:FireFox
基於Trident:IE
基於Presto:Opera
還有很多不同種類的頁面渲染引擎。
關於JavaScript的一些基礎語法
允許直接對變量賦值而無需事先聲明。
變量名和其他語法元素的名字區分大小寫。
變量名中不能包含空格或者標簽符號($符號除外),允許包含字母、數字、下划線和美元符號,但第一個字符不能是數字。
強類型:必須明確類型聲明的語言稱為強類型語言。
弱類型:不需要進行類型聲明的語言稱為弱類型語言,如JavaScript。
反斜線對字符進行轉義。如:var mood = ‘don\‘t ask’;
數組用Array關鍵字聲明。聲明方式有以下幾種:
1.var arr = Array(4); 或者不給出元素個數,而后利用下標進行數組的填充。如:arr[0] = 123;
2.var arr = Array(123,4,"abs","http");
3.var arr = [123,4,"abs","http"];
關聯數組:填充數組時為每個元素明確的給出下標,但是這個下標不僅僅可以是數字,也可以是字符串。如:arr["name"] = "Candy";
對象的創建方法有兩種:
1.var lennon = Object();
lennon.name = "Candy";
lennon.year = 1993;
lennon.sex = "female";
2.var lennon = {name:"Candy",year:1993,sex:"female"};
“==” 相等操作符。相等操作符認為空字符串與false的含義相同,所以嚴格比較相等時可以使用“===”。同理,嚴格比較不等時使用“!==”。
var關鍵字與變量的作用域:如果函數中使用了var,那么這個變量是局部變量,只存在於這個函數中;如果沒有使用var,那么這個變量是一個全局變量,如果腳本里已經存在一個與之同名的全局變量,這個函數就會改變那個全局變量的值。在定義一個函數時,一定要把它內部的變量都聲明為局部變量,這樣就能避免任何形式的二義性隱患。
對象有三類:
用戶定義對象:程序媛自己定義的對象。
內建對象:JavaScript預先定義的一系列對象,如:Math(Math.round()方法可以把十進制數舍入為一個與之最接近的整數)、Array、Date(用來存儲和檢索與特定日期和時間有關的信息)。
宿主對象:有瀏覽器提供的預定義對象,如:Form、Image、Element、document(能用來獲取網頁上的任何一個元素的信息)。
全是概念!再見~~~
