“Everything is Object”,在面向對象的編程語言中誰都知道這句話,但對我來說這是一種感覺,只可意會很難言傳。由于我對JavaScript和薄弱,所以在看Asp.net Ajax類庫的同時也翻出了ECMAScript順便學習學習。在.NET中所有類都是繼承自Object,同樣在JS中也一樣說有都繼承Object,因此如果對Object進行了擴展,那所有繼承Object類的后代肯定會擁有祖先的血緣。
既然開始學習JavaScript那就順便在這里提一提他的原始數據類型,在JS中有5個原始數據類型(Undefined、Null、Boolean、Number、String),可以通過typeof來判斷變量和值的數據類型
1. Undefined: 當變量被聲明但沒有被初始化,或函數沒有明確返回一個值的時候,該變量或函數即為 Undefined 類型,是Null類型的一種特性。
2. Null: 當一個對象的值不存在時,該對象返回null。
3. Boolean:一看就知道,一男一女true/false,值得注意的是0不等于false,但是可以轉化為false。
4. Number:可以定義32位整型數據或64位浮點型數據。從網上的一些資料知道,浮點數在未被計算之前是以String類型存儲(不知道是真是假)。當浮點類型數據很大或很小時(可以前后移動六位),將使用E表示法來表示浮點數據,最大可以存儲17位數據。另外,isFinite()方法可以判斷一個數值是否有限,isNaN()方法可以判斷一個數據是非數字類型。通過parseInt()和parseFloat()可以將其他類型轉化為數字類型,如果轉化不成功則返回NaN(Not a Number)。
5. String:這是一個唯一沒有大小限制的原始類型,其他類型可以通過toString()轉化為String類型,值得一提的是數字轉化為String類型可以加入2.8.16作為參數已輸出二進制,八進制和十六進制的字符串。
下面我們來看一下Object類型,通過var obj=new Object();可以申明一個對象。同.NET中的Object一樣,它是所有類的基類。
它具有兩個屬性:constructor(相當于.NET中的構造函數)建議一個對象函數引用,對于Object類而言,該引用指向本地Object()方法。Prototype對象里prototype對象的一個引用值,通過這個屬性可以反射每個對象中的prototype擴展的屬性和方法,在Asp.net Ajax中也是利用這個屬性類擴展和反射類的。
hasOwnProperty(property)—判斷property屬性是否存在于對象中,property數據類型為string;isPrototypeOf(object)— 判斷一個對象是否是另一對象的 prototype;propertyIsEnumerable(property)— 判斷所給出的屬性能否使用 for 語句列舉出來;toString()—返回對象的原始類型string;valueOf()—返回對象合適的原始值,對于多數類而言,返回的值和toString()相同。這些就是原始Object對象的方法,在其他類中這些方法以同樣被繼承。
新聞熱點
疑難解答
圖片精選