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