Javascript 基礎常用對象介紹

jopen 10年前發布 | 17K 次閱讀 JavaScript開發 JavaScript

數組類型、Object類型、包裝類型、Math對象、Date對象、Global對象、其他對象等的簡單介紹,只是為了以后復習時候使用。

數組 類型( 棧  &&  隊列 )

1)var arr = new Array();括號中的長度可以不指定,原因就是js中的數組長度是可以動態改變的

2)類似于java中的list容器,長度可變(arr.length=num),元素類型任意。

3)arr.push( obj , obj , ..... ) ; 通過 push 可以往數組中添加任意多個元素; 類似棧中添加元素

4)arr.pop( ) ; 通過pop可以刪除數組中最頂端的元素。類似棧中的刪除元素

5)arr.unshift(obj , obj ,.. ) ;通過unshift可以往數組中添加任意多個元素,類似隊列添加元素

6)arr.shift( ) ; 通過shift可以刪除數組中最低端的元素。類似隊列中刪除元素

7)arr.splice(num1 , num2 , num3,..);num1表示數組起始位置,num2表示截取的個數(從數組中刪除),num3以及后面的所有元素表示要添加到數組中作為新元素,最后就是數組既刪除了元素同時又添加了新元素。

8)arr = arr.slice(num1 , num2 );左閉右關,表示從數組中獲取從第二個到第四個元素返回

9)splice 操作數組本身,slice不操作數組本身,所以slice是不會改變原數組對象的。

10)arr = arr.concat( arr2 ); 數組元素合并,不操作數組本身,其返回元素為操作結果

11)arr = arr.join(‘ - ’);在每個元素之間加入參數內容,不操作數組本身

12)arr.sort( );對數組元素進行排序,默認是AES,內部比較規則是把元素轉為字符串在比較。自定義比較規則是自定義函數,并且把函數的對象作為參數傳入 sort(fun);如下 function fun(obj1 ,  obj2){ return 1 ; return 0 ; return -1}.

13)arr.reverse( );對數組元素進行轉置。

14)var value = arr.indexOf( index ) ; var value = arr.indexOf(start , index ) 類似于 arr[index]

15)arr.lastIndexOf( index ) ; 與上面相同

16)arr.reduce(function(pre , cur , 【index , arr】 ){ }); 數組疊加,這個方法還是很簡單使用的。

17)arr.reduceRight(function(pre , cur ,【 index , arr】 ){ }); 數組反向疊加,所以有了上面的方法這個方法基本沒什么意義。

18)5種迭代數組的方法 funName(function(iteam , index ){});

every : 對于數組每一個元素進行一個函數的運行,如果函數運行有一次為false,則為false,否則為true

some : 對于數組每一個元素進行一個函數的運行,如果函數運行有一次為true,則為true,否則為false

filter  : 對于數組每一個元素進行一個函數的運行,該函數執行過濾,把過濾后的結果返回。return true ;的保留
forEach:遍歷數組中的每一個值,并且對該值進行(函數)處理。就是遍歷對象,他并不返回結果值,除非使用引用型對象改變值。
map   : 遍歷數組中的每一個值,并且對該值進行(函數)處理,同時返回處理后的結果,他與filter的差異在于filter只返回滿足過濾條件的值,而map則返回對每一個值處理后的結果,那么數組長度是不會發生改變的,而filter是會發生改變的。return iteam。

19)數組轉對象,對象轉數組,自己編寫轉換方法,實際上就是利用js特性,把數組中重復的值去掉。


Object 類型(類似java的 Object)

1)所有類的基礎類,var obj = { } ;=  new Object();(最好不要省掉小括號,格式要求)

2)自定義屬性和方法,直接obj.name = ""; obj['sex'] = "" ;  obj.fun= function(){};

3)刪除屬性和方法 ,  delete obj.name ; delete obj.fun;delete obj[name] ; 注意刪除方法不需要括號

4)遍歷js對象,for in 語法;for(var attribute in object){object[attribute] + attribute}

5)Object對象一定具有的方法:

1 obj . constructor ;  構造函數 ;不能用括號,因為括號表示獲取函數的返回值,而不是調用函數本身對象

2 obj . hasOwnProperty('propertyName') ; 對象是否擁有屬性

3 obj . isProtoTypeOf(obj2) ; 檢測原型

4 obj . propertyIsEnumerable('propertyName') ; 檢測屬性是否能被枚舉

5 obj . toLocaleString() 與本地語言有關的字符串表示

6 obj . toString() ; 對象轉為字符串

7 obj . valueOf() ; 字符串表示對象 ,toLocalString()方法經常也會返回與toString()和valueOf()方法相同的值

6)重寫 Object中的方法,只要 obj.funName = function(){  } ; 就是重寫。

 

其他引用類型對象:

單體對象:不需要實例化對象就能使用對象 ;Global  Math

Global對象

1)Global:無形的,全局的,終極的,最頂端的, 不存在的對象 。因為不存在所以是不可以實例化的,也就是不能用new,使用它時直接調用他的方法即可。Global 對象從不直接使用,并且不能用 new 運算符創建。它在 Scripting 引擎被初始化時創建,并立即使其方法和屬性可用。

2)encodeURI(str);encodeURIComponent(str);以及對應的方法 decodeURI(str);decodeURIComponent(str);注意一般使用后兩者,原因是前者只對url中的空格處理,而后者還會處理很多字符

3)eval(str),最厲害的方法,無形的javascript解析器;把一些字符串轉為javascript中的腳本或對象。這個方法一般情況下是不會使用的,原因就是安全性,因為任何字符串代碼都會被執行,除非你知道這個代碼沒有問題執行,使用這個方法注意三點:

A:eval(str);其中str一定是String類型,而不是Object類型,意思是傳人的參數只能是原生的string類型,否則eval不做任何處理就把這個object返回給調用者。

B:eval(‘(’+objStr+')');這個方法的目的就是把一個字符串轉為一個對象類型,這種格式是固定的,使用括號就是代碼塊的原因。objStr="{name:'dff',sex:'man'}" ;  json對象

C:eval(‘ 5+10 ’);這種形式就是使用javascript解析執行str中的js代碼,然后把結果返回,如果沒有返回值則為undefiend。

4)parseInt(str);parseFloat(str);類型轉換

5)escape(str) ; unescape(str); 加密;解密,這個與上面的encodeURI差不多,所以也沒什么價值。

6)isNaN(obj);如果obj能夠轉為Numner類型則返回false,否則返回true;

7 ) isFinite( obj ) ; 判斷對象是否是無限的。

Math對象

1)Math.funName(); 數學的基本運算

2)Math.random() ; 隨機數的生成。返回一個0.0 和 1.0之間的一個偽隨機數。

Date對象

1)var date = new Date();

2 ) var year = date.getFullYear();不要使用date.getYear();原因就是瀏覽器對這個方法處理不一樣

3)如何把javascript中的date轉為自己想要的格式,就是通過getXXX獲取年月日時分秒,然后拼接字符串

4)getTime();通過這個時間差獲取函數執行時間。

基本包裝類型

1)Boolean String Number

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!