欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

JavaScript數(shù)據(jù)類型學(xué)習(xí)筆記分享

 更新時(shí)間:2016年09月01日 11:37:48   作者:u012934325  
這篇文章主要為大家分享了JavaScript數(shù)據(jù)類型學(xué)習(xí)筆記,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

本文實(shí)例為大家講解JavaScript數(shù)據(jù)類型的相關(guān)資料,供大家參考,具體內(nèi)容如下

1.引用類型
引用類型的值是引用類型的一個(gè)實(shí)例,引用類型是一種數(shù)據(jù)結(jié)構(gòu),用于將數(shù)據(jù)和功能組織在一起,也常被叫做類。
對(duì)象時(shí)某個(gè)特定引用類型的實(shí)例,新對(duì)象是使用new操作符后跟一個(gè)構(gòu)造函數(shù)來創(chuàng)建的,構(gòu)造函數(shù)本身就是函數(shù),是出于創(chuàng)建新對(duì)象的目的而定義的。

 var person = new Object();

2.Object類型
(1)Object類型對(duì)于應(yīng)用程序中存儲(chǔ)和傳輸數(shù)據(jù)來說,是非常理想的選擇。
(2)Object類型實(shí)例創(chuàng)建方式:
使用new加Object構(gòu)造函數(shù)。

 <script type="text/javascript">
      var person = new Object();
      person.name = "peter";
      alert(person.name);
 </script>

使用對(duì)象字面量的表示方法。

var dog = {
        name:"kity",
        age:3,
        eye:bigEyes
      };

這種創(chuàng)建方法,由一對(duì)花括號(hào)開始,前面是變量名,后面是冒號(hào),再是屬性值,可以有多個(gè)屬性,但是每個(gè)屬性之間必須使用逗號(hào)分隔,最后一個(gè)屬性一般是不加逗號(hào)的。其中屬性名也可以是字符串。如果花括號(hào)里面不寫東西,那么只可以定義包含默認(rèn)屬性和方法的對(duì)象。

一般來說,訪問對(duì)象屬性使用點(diǎn)表示法,在javascript中使用方括號(hào)[]來訪問對(duì)象的屬性。在使用[]時(shí),應(yīng)該將要訪問的屬性以字符串的形式放在[]中。

 alert(person["name"]);
    alert(person.name);

前者可以通過變量訪問屬性。
如果屬性名中包含會(huì)導(dǎo)致語法錯(cuò)誤的字符,屬性名使用的是關(guān)鍵字或保留字,也可以使用方括號(hào)。
除非必須使用變量來訪問屬性,否則我們建議使用點(diǎn)表示法。

3.Array類型
javascript中的數(shù)組是有序列表,它可以保存任意類型的數(shù)據(jù),這是和其他語言數(shù)組的最大區(qū)別,而且它的數(shù)組的大小是可以動(dòng)態(tài)調(diào)整的。
(1)創(chuàng)建數(shù)組的基本方式:
使用Array構(gòu)造函數(shù),可以給他傳值(數(shù)組的大小或者數(shù)組的內(nèi)容)

 var student = new Array();
  var student = new Array(10);
  var student = new Array("peter","merry","bob");

(2)使用數(shù)組字面量的表示方法,數(shù)組字面量由一對(duì)包含數(shù)組項(xiàng)的方括號(hào)表示,多個(gè)數(shù)組之間用逗號(hào)隔開。
(3)在讀取和設(shè)置數(shù)組的值時(shí),使用方括號(hào)和對(duì)應(yīng)值基于0的數(shù)字索引。
數(shù)組的長度保存在length屬性中,這個(gè)屬性值可以返回0或者更大的數(shù)值。可以通過設(shè)置length屬性的值,從數(shù)組的末尾刪除或者增加新的項(xiàng)。

 var colors = ["red","blue","green"];
  colors.length = 2;//數(shù)組長度變成了2,green被移除
  alert(colors[2]);//此時(shí)訪問會(huì)返回undefined,alert(colors[1]);會(huì)返回blue

如果將Length屬性設(shè)置為大于數(shù)組項(xiàng)目的值,則新增的每一項(xiàng)都會(huì)返回undefined值。

 var colors = ["red","blue","green"];
  colors.length = 5;
  alert(colors[4]);

利用length屬性在數(shù)組末尾增加項(xiàng)。

 var colors = ["red","blue","green"];
  alert(colors[colors.length]="black");

(4)數(shù)組最多可以包含4294967295個(gè)項(xiàng)
(5)檢測數(shù)組
使用Array.isArray()方法,它可以最終確定該值是不是數(shù)組,而且不管他是在哪個(gè)全局執(zhí)行環(huán)境中創(chuàng)建的。

 if(Array.isArray){
    //operates 
  }

(6)轉(zhuǎn)換方法
所有對(duì)象都具有toLocaleString(),toString()和valueOf()方法,其中,調(diào)用數(shù)組的toString()方法會(huì)返回由數(shù)組中每個(gè)值得字符串形式拼接而成的一個(gè)以逗號(hào)分隔的字符串。valueOf()會(huì)返回?cái)?shù)組。
當(dāng)調(diào)用toLocaleString()方法時(shí),會(huì)創(chuàng)建一個(gè)數(shù)組值得以逗號(hào)分隔的字符串,與前面的不同是,為了取得每一項(xiàng)的值,調(diào)用的是每一項(xiàng)的toLocaleString()方法,而不是toString()方法。

<script type="text/javascript">
      var person1 = {
        toString : function(){
          return "peter";
        },
        toLocaleString :function(){
          return "mary";
        }
      };
      var person2 = {
        toString: function(){
          return "26";
        },
        toLocaleString:function(){
          return "18";
        }
      };
      var person = [person1,person2];
      alert(person);
      alert(person.toString());
      alert(person.toLocaleString());
    </script>

使用join()方法可以用不同的分隔符來構(gòu)建這個(gè)字符串,join()方法只接收一個(gè)參數(shù),用作分隔符的字符串,然后返回包含所有數(shù)組項(xiàng)的字符串。如果不給join()方法傳入任何值,或者傳入undefined,使用逗號(hào)作為分隔符。如果數(shù)組中的某一項(xiàng)的值是null或undefined,那么該值在join(),toString(),toLocaleString()和valueOf()方法返回的結(jié)果中以空字符串表示。

<script type="text/javascript">
      var person1 = {
        toString : function(){
          return "peter";
        },
        toLocaleString :function(){
          return "mary";
        }
      };
      var person2 = {
        toString: function(){
          return "26";
        },
        toLocaleString:function(){
          return "18";
        }
      };
      var person = [person1,person2];
      alert(person);
      alert(person.toString());
      alert(person.toLocaleString());
      alert(person.join("*"));
      alert(person.join("--"));
    </script>

(7)棧方法
棧就是數(shù)據(jù)結(jié)構(gòu)中的棧,他的特點(diǎn)就是先進(jìn)后出,而且所有的操作只發(fā)生在棧頂,javascript提供了push()和pop()方法,可以實(shí)現(xiàn)類似于棧的行為。
push()可以接收任意數(shù)量的參數(shù),并且逐個(gè)添加到數(shù)組的末尾,并返回修改后數(shù)組的長度。
pop()方法可以從數(shù)組末尾移除最后一項(xiàng),減少數(shù)組的lengthh值,然后返回移除的頂。
(8)隊(duì)列方法
隊(duì)列的數(shù)據(jù)結(jié)構(gòu)特點(diǎn)是先進(jìn)先出,隊(duì)列在列表末端添加項(xiàng),從列表的前端移除項(xiàng)。
push()可以向數(shù)組的末端添加項(xiàng),shift()可以移除數(shù)組中的第一個(gè)項(xiàng),并返回該項(xiàng),數(shù)組長度減1;unshift()可以在數(shù)組前端添加任意個(gè)項(xiàng)并返回新數(shù)組的長度。
(9)重排序方法
reverse()會(huì)反轉(zhuǎn)數(shù)組的順序
默認(rèn)情況下,sort()按照升序排列數(shù)組項(xiàng)(最小值位于最前面,最大值位于最后面,為了實(shí)現(xiàn)排序,sort()方法會(huì)調(diào)用每個(gè)數(shù)組項(xiàng)的toString()轉(zhuǎn)型方法,然后比較得到的字符串,來確定如何排序)。sort()可以接收一個(gè)比較函數(shù)作為參數(shù),比較函數(shù)接收兩個(gè)參數(shù),如果第一個(gè)參數(shù)應(yīng)該位于第二個(gè)之前,返回一個(gè)負(fù)數(shù),如果兩個(gè)參數(shù)相等則返回0,如果第一個(gè)參數(shù)應(yīng)該位于第二個(gè)之后返回一個(gè)正數(shù)。
reverse()和sort()方法的返回值都是經(jīng)過排序之后的數(shù)組。
(10)操作方法
concat()可以基于當(dāng)前數(shù)組中的所有項(xiàng)創(chuàng)建一個(gè)新數(shù)組。
slice()可以基于當(dāng)前數(shù)組中一個(gè)或多個(gè)項(xiàng)創(chuàng)建一個(gè)新數(shù)組,slice()可以接收一個(gè)或兩個(gè)參數(shù),要返回項(xiàng)的起始和結(jié)束位置,。參數(shù)為一個(gè)時(shí),會(huì)返回該參數(shù)指定位置開始到當(dāng)前數(shù)組末尾的所有項(xiàng);如果有兩個(gè)參數(shù),返回起始和結(jié)束位置之間的項(xiàng),但是不包括結(jié)束位置的項(xiàng)。
splice()方法:主要用于向數(shù)組的中部插入項(xiàng)
刪除:可以刪除任意數(shù)量的項(xiàng),只需要指定2個(gè)參數(shù),要?jiǎng)h除的第一項(xiàng)的位置和要?jiǎng)h除的項(xiàng)數(shù)。
插入:可以向指定位置插入任意數(shù)量的項(xiàng),只需提供三個(gè)參數(shù),起始位置和0和要插入的項(xiàng)。
替換:可以向指定位置插入任意數(shù)量的項(xiàng),且同時(shí)刪除任意數(shù)量的項(xiàng),只需指定3個(gè)參數(shù),起始位置,要?jiǎng)h除的項(xiàng)數(shù)和要插入的任意數(shù)量的項(xiàng),插入項(xiàng)數(shù)不必與刪除的項(xiàng)數(shù)相等。
splice()總會(huì)返回一個(gè)數(shù)組,該數(shù)組中包含從原始數(shù)組中刪除的項(xiàng)(如果沒有刪除任何項(xiàng),則返回一個(gè)空數(shù)組)。
(11)位置方法
這兩個(gè)方法都可以接收兩個(gè)參數(shù),要查找的項(xiàng)和表示查找起點(diǎn)位置的索引,都返回要查找的項(xiàng)在數(shù)組中的位置,或在沒有找到的情況下返回-1,在比較第一個(gè)參數(shù)與數(shù)組中的每一項(xiàng)時(shí),會(huì)使用全等操作符,要查找的項(xiàng)必須嚴(yán)格相等。
indexOf():從數(shù)組的開頭開始向后查找
lastIndexOf():從數(shù)組的末尾開始向前查找。
(12)迭代方法
javascript為數(shù)組提供了5個(gè)迭代方法,每個(gè)方法都接收兩個(gè)參數(shù):要在每一項(xiàng)運(yùn)行的函數(shù)和(可選的)作用域?qū)ο螅ㄓ绊憈his的值),傳入這些方法中的函數(shù)會(huì)接收三個(gè)參數(shù):數(shù)組項(xiàng)的值,該數(shù)組中的位置和數(shù)組對(duì)象本身。
every():對(duì)數(shù)組中每一項(xiàng)運(yùn)行給定函數(shù),如果該函數(shù)對(duì)每一項(xiàng)都返回true,則返回true.
filter():對(duì)數(shù)組中每一項(xiàng)運(yùn)行給定函數(shù),返回該函數(shù)會(huì)返回true的項(xiàng)組成的數(shù)組
forEach():對(duì)數(shù)組中每一項(xiàng)運(yùn)行給定函數(shù),這個(gè)方法沒有返回值
map():對(duì)數(shù)組中每一項(xiàng)運(yùn)行給定函數(shù),返回每次函數(shù)調(diào)用的結(jié)果組成的數(shù)組
some():對(duì)數(shù)組中每一項(xiàng)運(yùn)行給定函數(shù),如果該函數(shù)對(duì)任一項(xiàng)返回true,則返回true.
上面的方法都不會(huì)修改數(shù)組中的包含值。
every()和sum()都用于查詢數(shù)組中的項(xiàng)是否滿足某個(gè)條件
(13)縮小方法
下面的兩個(gè)方法都會(huì)迭代數(shù)組的所有項(xiàng),然后構(gòu)建一個(gè)最終返回的值。都接收兩個(gè)參數(shù):一個(gè)在每一項(xiàng)上調(diào)用函數(shù)和(可選的)作為縮小基礎(chǔ)的初始值。傳給這兩個(gè)方法接收4個(gè)參數(shù):前一個(gè)值,當(dāng)前值,項(xiàng)的索引和數(shù)組對(duì)象。這個(gè)函數(shù)返回的任何值都會(huì)作為第一個(gè)參數(shù)自動(dòng)傳給下一項(xiàng),第一次迭代發(fā)生在數(shù)組的第二項(xiàng)上,因此第一個(gè)參數(shù)是數(shù)組的第一項(xiàng),第二個(gè)參數(shù)是數(shù)組的第二項(xiàng)。
reduce():從數(shù)組的第一項(xiàng)開始,逐個(gè)遍歷到最后??梢詧?zhí)行求數(shù)組中所有值得和的操作。

<script type="text/javascript">
      var values=[1,2,3,4,5];
      var sum = values.reduce(function(prev,cur,index,array){
        return prev + cur;
      });
      alert(sum);
  </script>

reduceRight():從數(shù)組最后一項(xiàng)開始,向前遍歷到第一項(xiàng)??梢詧?zhí)行求數(shù)組中所有值得和的操作。

以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

最新評(píng)論