對象,其實就是一種引用類型。而對象的值就是引用類型的實例。html
建立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(數組)類型有兩種方式:第一種是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);
注意區別
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,其返回值以下:
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();