History Of JavaScript.
與ECMAscript , DOM (Document Object Model),BOM(Browser Object Model)
JavaScript生于1995,最初是為了把input validation從server端的Perl移到用戶端(是以說,總是在用戶端和server端移動,例如struts,就是把validation放在用戶端,不過你要知道,在95年的時候,網絡用的是巨慢無比的Modem,是以網絡請求是非常緩慢的,每一點帶寬都是很寶貴的,是以能在用戶端解決Validation的問題是很誘人的),後來功能就擴充到浏覽器的各個方面。LiveScript, Ms的Jscript。1997,JavaScript1.1送出給ECMA(262),ECMAScript。

DOM
DHTML的使用方法是依賴于浏覽器的,W3C定義DOM,來取代DHTML(目前還不成),1998,DOM level1 (core,用來解析XML-base的文檔,和DOM HTML,用來針對HTML,因為DOM并非隻針對HTML的),DOM Level2(event,以前都是通過DHTML支援,style,與CSS溝通,等等。。)
DOM level3(DOM Load and Save;DOM Validation;對XML1.0的支援,包括:XML Infoset, XPath,XML Base.)
總結:
ECMAScript:語言核心,文法與基本對象
DOM: 描述與WEB頁面内容相關的API
BOM: 與浏覽器相關的API
—————————————————————————————————————————
ECMAScript 語言要點:
- 兩種類型:Primitive Type(五種:Undefined,Null,Boolean,Number,String)和Reference Type
- Typeof 操作符:傳回變量的類型,對于Undefined,Boolean,Number,String分别傳回各自的類型名,對于Null或Reference Type 傳回 Object
- 資料間的轉換:toString() , parseInt(), Boolean(), Number()
-
Object : 規範中是沒有Class的概念的,隻有Object,使用類的概念是為了Java程式員好了解,這個Object類似于Java語言中的java.lang.Object,是所有的基礎類。
Object的屬性包括:constructor(參照屬性,對于Object指向Object());prototype (原型屬性,對于所有類,預設傳回Object的執行個體)
Object的方法包括: hasOwnProperty(property)本對象是否擁有某屬性;isPrototypeOf(object)本對象是否是某對象的屬性;propertyIsEnumerable(property)屬性是否Enumerable,即可用于For…in語句;toString();valueOf()
-
其他Reference Type:
Boolean(有也别用)注意:
var oFalseObject = new Boolean(false); var bResult = oFalseObject && true ; alert(bResult); (輸出為true,因為AND比較的是對象,而所有的對象在布爾表達式中會被預置為true,是以等同于 true&&true, 是以是True)
var oFalseObject = false; var bResult = oFalseObject && true ; alert(bResult);
輸出(false)
Number:注意: toFixed(), toExponential(), toPrecision()等方法的使用
String:注意:charAt(), indexOf(), lastIndexOf(), localCompare(),slice(), substring(), toUpperCase()等方法的使用。
-
Instanceof 的使用:
typeof對所有參照類型都傳回object, 如果對具體類型進一步判斷,使用Instanceof
var oStringObject = new String(“hello world”);
alert(oStringObject instanceof String); //outputs “true”
- Delete的使用
-
Void的使用
<a href=”javascript:void(window.open(‘about:blank’))”>Click Me</a>
-
等與不等
兩種類型: == ,!=與=== !==, 前者用于primary type間,後者用于object間
-
For in 語句
for (property in expression) {...}
- With 語句 (别用它)
ECMAScript 的Function:
- Function:隻是一個叫Function的對象而已
- 當Function沒有精确指定傳回值或是使用單獨的return語句時,Function傳回undefined
- 沒有Overloading,同名的Function會抵消掉前面的,解決辦法是使用參數化對象。為啥? A function name is just a variable pointing to a function
- 是以Function可以被當作參數傳遞。
- Function的toString()方法