首頁 > web前端 > js教程 > 主體

js程式設計之引用型別介紹

零下一度
發布: 2017-07-17 16:18:07
原創
1389 人瀏覽過

引用型別

         JS變數中變數有兩種資料型別值,基本類型的值和引用類型的值。基本型別就是null,undefined,Boolean,string,number,引用型別的值都是物件的引用,也就是一個指向物件的指標。

引用類型為一種資料結構(其他語言稱為類,js中之前沒有類別的概念,在es6中有了(一個語法糖)),當其具體化的時候,就成為了對象,所以對象稱為引用類型的實例或值。 (物件即鍵值對構成的組合。)

        從目錄中,可看到JavaScript中的參考型別有:Object型別、Array型別、Data型別、RegExp型別、Function型別、基本內建型別、單體內建類型。下面我將整理這裡的知識點。

①引用類型是一種資料結構,用於將資料和功能組織在一起,它也被稱為類,但JavaScript中卻不支援類別和介面都基本機構,故稱之為對象定義。

②Object是使用最多的一個型別。建立Object有兩種方法。

    第一種使用new運算元:

1 var person = new Object();2 person.name = "xuchaoi";3 person.age = 24;
登入後複製

#    第二種使用物件字面量表示法:

1 var person = {2     name: "xuchaoi",3     age: "24"4 }  // 访问对象的值:person.name
登入後複製

③創建Array和創建Object類似。可以透過new運算元或陣列字面量表示法建立

④透過Array.isArray()方法來偵測陣列。因為typeof()偵測陣列、物件或Null類型傳回的都是「object」

⑤分割數組成字串方法:join()

1 var name = ["小明", "小红", "小青"];2 consol.log(name.join("&"));  // 小明&小红&小青
登入後複製

#⑥數組模擬資料結構棧。 push()在數組末尾添加值,pop()移除數組末尾項。從而實現後進先出的堆疊結構

⑦數組模擬資料結構對。 push()在數組末尾添加值,shift()移除數組首項。從而實現先進先出的對結構

⑧unshift()與shift()相反,它向數組首項添加值

⑨數組倒序方法:reverse()。此方法會反轉數組項的順序。

⑩數組排序方法:sort()。預設情況下,它會先為數組每項進行toString()轉型,然後按照升序排列數組項

1 var values = [0, 1, 5, 10, 15];2 console.log(value.sort());    //0,1,10,15,5
登入後複製

這樣的結果顯然不是我們想要的,這裡sort()方法接受一個比較函數作為參數,以便我們可以控制順序。比較函數有兩個參數,分別是前一個值和後者值。如果第一個值放在第二個值後面則回傳一個正數,反之回傳一個負數,無論先後回傳0。

function compare(value, nextValue) {if(value < nextValue) {return -1;
    } else if(value > nextValue) {return 1;
    } else{return 0;
    }
}var values = [1, 0, 10, 5, 15];
console.log(values.sort(compare));    //0,1,5,10,15
登入後複製

⑪連接陣列:concat(),接受參數:字串、陣列

⑫截取陣列(不會對原始陣列進行改變產生新陣列)方法:slice ()。接收連個參數:起始值,結束值(可省略)。

1 var colors = ["红色", "黄色", "绿色", "蓝色"];2 var colors1 = colors.slice(1);    //截取从起始值到结束(数值都是从0计数)3 var colors2 = colors.slice(1,3)  //截取从起始值到结束值(不包括结束值)4 console.log(colors1);        //["黄色", "绿色", "蓝色"]  5 console.log(colors2);        //["黄色", "绿色"]
登入後複製

⑬操作陣列的方法:splice()。此方法可以刪除數組的項,向數組插入項,給數組替換項(即在刪除數組項的同時再在對應位置添加項)

⑭數組項的位置方法:indexOf()。從數組第一項向後查我們設定的值,一旦查到就回傳該值在數組中的位置索引,沒有查到返回-1。利用這點可以對陣列進行查重

1 //原理说明:利用indexOf只会返回数组中元素首次出现的位置与filter内函数index值的不等进行筛选2 var arry = [1,2,3,4,1,2,3];
3 var newArray = arry.filter(function(element,index,self) {4     return self.indexOf(element) === index;5 });    
//说明:filter()会遍历数组,过滤数组不符合要求的元素6 console.log(newArray);    //[1,2,3,4]
登入後複製

⑮陣列遍歷map()。

1 var numbers = [1, 2, 3, 4, 5];
2 var numbers2 = numbers.map(function(item, index, array){3     
return item * 2;4 });
5 console.log(numbers2);    
 [2,4,6,8,10]
登入後複製

⑯數組遍歷forEach()

1 var numbers = [1, 2, 3, 4, 5];
2 numbers.forEach(function(item, index, array){3     
array[index] = item * 2;4 });5 console.log(numbers);    
// [2,4,6,8,10]
登入後複製

⑰數組累積迭代方法reduce()

#
1 var numbers = [1, 2, 3, 4, 5];
2 var sum = numbers.reduce(function(prev, cur, index, array) {3     
return prev + cur;4 });    
//reduce迭代函数接受4个参数:前一个值,当前值,项的索引,数组对象5 console.log(sum); 
15
登入後複製

這裡先說到數組,下節將繼續講述引用類型章節的注意要點!

以上是js程式設計之引用型別介紹的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
最新問題
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板