對象和數組

對象,其實就是一種引用類型。而對象的值就是引用類型的實例。html

Object類型

建立Object類型有兩種,一種是new運算,一種是字面量表達式。  對象裏面能夠存聽任何類型。前端

1.使用new運算符建立Object數組

var box=new Object();  //new 方式
box.name="何";   //建立屬性字段
box.age=28;    


//new 關鍵字能夠省略
var box=Object();  //省略new關鍵字

2.使用字面量方式建立Object函數

var box={
 name:"何",
 age: 26
};

3.屬性字段也可使用字符串形式this

var box={
  "name": "何",
  "age": 28
}
//也能夠用字符串形式

4.使用字面量及傳統複製方式編碼

var box={};
box.name="何";
box.age=26;

5.兩種屬性輸出方式spa

alert(box.age);   
alert(box["age"]);

6.給對象建立方法prototype

var box={
  run:function(){

   return"運行"
 }
}
alert(box.run());

7.使用delete刪除對象屬性code

delete box.name;htm

在實際開發過程當中,通常咱們更加喜歡字面量的聲明方式。由於它清晰,語法代碼少,並且還給人一種封裝的感受。字面量也是向函數傳遞大量可選參數的首選方式。

function box(obj){       //參數是一個對象
  if(obj.name!=undefined)  //判斷屬性是否存在
     alert(obj.name);
  if(obj.age!=undefined)
    alert(obj.age);
}

box({name:"何",age:26})  //調用函數傳遞一個對象

Array類型

建立Array(數組)類型有兩種方式:第一種是new運算符,第二種是字面量。

1.使用new關鍵字建立數組

var  box=new Array();  //建立了一個數組
var box=new Array(10); //建立一個包含10個元素的數組
var box=new Array("何",26,"前端"); //建立了一個數組並分配好了元素

2.以上三種方法均可以省略new關鍵字。

bar box=Array();

3.使用字面量方式建立數組

var box=["何",26,「前端」];
alert(box[2])   //使用索引下表來讀取數組的值
alert(box.length) //使用length屬性獲取數組元素量  獲取元素個數

建立一個稍微複雜的數組

var box=[
     {            //第一個元素是一個對象
       name:"何",
       age:26,
       run:function(){
         return "運行"
       },
     },
     ["馬雲","飛流",new Object()],   //第二個元素是一個數組
     "江蘇",                        //第三個元素是一個字符串
     2+2,                          //第四個元素是數值
     new Array(1,2,4)              //第五個元素是數組
         ];
alert(box);

Array對象方法

注意區別

slice(),   數組長度不會改變

splice(),  與 slice() 不一樣的是,splice()的數組長度       會改變

substr(),  字符串長度不會改變

substring(),  字符串 長度不會改變   與 slice() 和 substr() 方法不一樣的是,substring() 不接受負的參數。

slice()方法可從已有的數組返回選定的元素,不會修改數組的值和長度,只是返回一個子數組。若是想刪除數組中的一段元素,可用Array.splice()。這也是slice()和splice()方法的區別

語法:

arrayObject.slice(start,end)

參數:

start  必需。規定從何處開始選取。若是是負數,那麼它規定從數組尾部開始算起的位置。也就是說,-1 指最後一個元素,-2 指倒數第二個元素,以此類推。

end  可選。規定從何處結束選取。該參數是數組片段結束處的數組下標。若是沒有指定該參數,那麼切分的數組包含從 start 到數組結束的全部元素。若是這個參數是負數,那麼它規定的是從數組尾部開始算起的元素。

var arr=["一","二","三","四","五"];
 document.write(arr.slice(-5,-1))
 document.write("<br>")
 document.write(arr)
//一,二,三,四
//一,二,三,四,五

splice  只改變數組的長度  其餘的和slice()同樣

var arr=["一","二","三","四","五"];
 document.write(arr.splice(1,5))
 document.write("<br>")
 document.write(arr)

//二,三,四,五
//一

splice() 方法向/從數組中添加/刪除項目,而後返回被刪除的項目。會改變原始數組。

arrayObject.splice(index,howmany,item1,.....,itemX)

index 必需。整數,規定添加/刪除項目的位置,使用負數可從數組結尾處規定位置。

howmany 必需。要刪除的項目數量。若是設置爲 0,則不會刪除項目。

item1, ..., itemX 可選。向數組添加的新項目。

var arr=["a","b","c","d"];
 document.write(arr.splice(1,2));
 document.write("<br>");
 document.write(arr);

//b,c
//a,d

substr() 方法可在字符串中抽取從 start 下標開始的指定數目的字符。substr() 的參數指定的是子串的開始位置和長度,所以它能夠替代 substring() 和 slice() 來使用, 可是智能在字符串中使用。

var str="hello";
 document.write(str.substr(1));
 document.write("<br>");
 document.write(str);

//ello
//hello

substring() 方法用於提取字符串中介於兩個指定下標之間的字符。 start不能爲負數。

var str="Hello world!"
document.write(str.substring(3))
document.write("<br>")
document.write(str)

//lo world!
//Hello world!

contact()   鏈接兩個或更多的數組,並返回結果。

var arr1=[111,222,333,444,555];
 var arr2=[111,222,333,444,555];
 document.write(arr1.concat(arr2))
 //111,222,333,444,555,111,222,333,444,555

join() 方法用於把數組中的全部元素放入一個字符串。

var arr1=["一","二","三","四","五"];
 var arr2=["一"];
 document.write(arr1.join(arr2))

//一一二一三一四一五


var arr1=["一","二","三","四","五"];
 document.write(arr1.join("."))

//一.二.三.四.五

pop() 方法將刪除 arrayObject 的最後一個元素,把數組長度減 1,而且返回它刪除的元素的值。若是數組已經爲空,則 pop() 不改變數組,並返回 undefined 值。

var arr=["一","二","三","四","五"];
 document.write(arr.pop())
 document.write("<br>")
 document.write(arr)

//五
//一,二,三,四

push() 方法可向數組的末尾添加一個或多個元素,並返回新的長度。

var arr=["一","二","三","四","五"];
 document.write(arr.push("六"))
 document.write("<br>")
 document.write(arr)

//6
//一,二,三,四,五,六

reverse() 方法用於顛倒數組中元素的順序。

var arr=["一","二","三","四","五"];
 document.write(arr.reverse())

//五,四,三,二,一

shift() 方法用於把數組的第一個元素從其中刪除,並返回第一個元素的值。 和pop相反  pop是刪除最後一個元素。

var arr=["一","二","三","四","五"];
 document.write(arr.shift())
 document.write("<br>")
 document.write(arr)

//一
//二,三,四,五

sort() 方法用於對數組的元素進行排序.

若是調用該方法時沒有使用參數,將按字母順序對數組中的元素進行排序,說得更精確點,是按照字符編碼的順序進行排序。要實現這一點,首先應把數組的元素都轉換成字符串(若有必要),以便進行比較。

若是想按照其餘標準進行排序,就須要提供比較函數,該函數要比較兩個值,而後返回一個用於說明這兩個值的相對順序的數字。比較函數應該具備兩個參數 a 和 b,其返回值以下:

  • 若 a 小於 b,在排序後的數組中 a 應該出如今 b 以前,則返回一個小於 0 的值。
  • 若 a 等於 b,則返回 0。
  • 若 a 大於 b,則返回一個大於 0 的值。
var arr=["d","c","b","a"];
 document.write(arr.sort())
//a,b,c,d

數值從小到大排序,若是直接sort(),不會按照數值大小排序,會按照字母排序,因此須要使用一個排序函數。

function sortNumber(a,b)
{
  return a-b
}
var arr=["100","55","1000","1"];
document.write(arr.sort(sortNumber))


//1,55,100,1000

 

toSource() 方法表示對象的源代碼。toSource() 方法一般由 JavaScript 在後臺自動調用,並不顯式地出如今代碼中,不兼容,只有火狐能夠。
 

function employee(name,job,born)
{
this.name=name;
this.job=job;
this.born=born;
}

var bill=new employee("Bill Gates","Engineer",1985);

document.write(bill.toSource());


//({name:"Bill Gates", job:"Engineer", born:1985})

toString() 方法可把數組轉換爲字符串,並返回結果。

var arr=["1","2","3","4"];
 document.write(arr.toString());
 document.write("<br>");
 document.write(arr);

//1,2,3,4
//1,2,3,4

toLocalString()把數組轉換爲本地字符串。首先調用每一個數組元素的 toLocaleString() 方法,而後使用地區特定的分隔符把生成的字符串鏈接起來,造成一個字符串。

var arr=["你","我","他"];
 document.write(arr.toLocaleString());
 document.write("<br>");
 document.write(arr);

//你,我,他
//你,我,他

//我沒有看到什麼區別?

unshift() 方法可向數組的開頭添加一個或更多元素,並返回新的長度。同shift()相反

var arr=["你","我","他"];
 document.write(arr.unshift("咱們","大家"));
 document.write("<br>");
 document.write(arr);

//5
//咱們,大家,你,我,他

valueOf() 方法返回 Array 對象的原始值。valueOf() 方法返回 Array 對象的原始值。

 

遍歷數組

//兩種
var arr=["你","我","他"];
//第一種
 for(var i=0;i<arr.length;i++){
	document.write(arr[i])
   }
//第二種
 for(var i in arr){
	 document.write(arr[i])
	 }


//你我他

面向對象

面向對象 ,就是把方法(函數)轉成對象  對象裏面有屬性 和值 (普通值  還有方法)

//原本 test()是個函數
function test(){
		this.age=100;
		this.fn=function(){
			return 'fn11';
			}
		}
//經過new 把他轉化爲對象(object)
var t1=new test();

//結果是[object Object]

還能夠在方法外部增長屬性  

function test(){
		this.age=100;
		this.fn=function(){
			return 'fn11';
			}
		}
		test.prototype.t2="咱們"
		var t1=new test();
		document.write(t1.t2)

//結果是  咱們

內置對象

Math, String,Array, Date

eg:var d=new Date();

相關文章
相關標籤/搜索