成人怡红院-成人怡红院视频在线观看-成人影视大全-成人影院203nnxyz-美女毛片在线看-美女免费黄

站長資訊網
最全最豐富的資訊網站

javascript的引用數據類型是什么

在javascript中,引用數據類型是一種數據結構,用于將數據和功能組織在一起;它也常被稱為類。引用類型的值是保存在內存中的對象(同時保存在棧內存和堆內存中);引用類型的值是按引用訪問的。

javascript的引用數據類型是什么

本教程操作環境:windows7系統、javascript1.8.5版、Dell G3電腦。

數據類型指的是可以在程序中存儲和操作的值的類型,每種編程語言都有其支持的數據類型,不同的數據類型用來存儲不同的數據,例如文本、數值、圖像等。

JavaScript 中的數據類型可以分為兩種類型:

  • 基本數據類型(值類型):字符串(String)、數字(Number)、布爾(Boolean)、空(Null)、未定義(Undefined)、Symbol;

  • 引用數據類型:對象(Object)、數組(Array)、函數(Function)。

JavaScript引用數據類型

引用類型

在ECMAScript中,引用類型是一種數據結構,用于將數據和功能組織在一起(它也常被稱為類)。

引用類型的值是保存在內存中的對象(同時保存在棧內存和堆內存中)。JavaScript 不允許直接訪問內存中的位置,因此在操作對象時,實際上是操作的對象的引用而不是實際的對象。引用類型的值按引用訪問。

Object類型

創建Object實例的方式有兩種。第一種是使用new操作符后跟Object構造函數,例如;

var person = new Object();  person.name = "Nicholas";  person.age = 29;

另一種方式是使用對象字面量表示法。 例如:

var person = {  name : "Nicholas",  age ; 29  }

注意:在通過對象字面量定義對象時,實際上不會調用Object構造函數。

Array類型

創建數組的基本方式有兩種。第一種是使用Array構造函數,例如:

var colors = new Array();

第二種基本方式是使用數組字面量表示法。數組字面量由一對包含數組項的方括號表示,多個數組項之間以逗號隔開,例如:

var colors = ["red","blue","green"];

檢測數組

instanceof操作符假定只有一個全局執行環境。為了解決只個問題,ECMAScript 5新增了Array.isArray()方法。這個方法的目的是最終確定某個值到底是不是數組,而不管它是在哪個全局執行環境中創建的。

轉換方法

toLocaleString()、toString()和valueOf()方法

所有對象都具有toLocaeString()、toString()和valueOf()方法。
調用數組的toString()方法會返回以逗號分隔的字符串;
調用toLocaleString( )和toString()一樣,但是該字符串與執行環境的地區對應;
調用valueOf()返回的還是數組。

join()方法

join()方法只接受一個參數,即用作分隔符的字符串,然后返回包含所有數組項的字符串。

棧方法(后進先出)

ECMAScript為數組專門提供了push()和pop()方法,以便實現類似棧的行為。push()方法可以接受任意數量的參數,把他們逐個添加到數組末尾,并返回修改后數組的長度。pop()方法則從數組末尾一處最后一項,減少數組的length值,然后返回移除的項。

隊列方法(先進先出)

shift()能夠移除數組中的第一項并返回該項,同時將數組長度減一。結合使用shift()和push()方法,可以像使用隊列一樣使用數組。
ECMAScript還為數組提供了一個unshift()方法。顧名思義,unshift()與shift()的用途相反:它能在數組前端添加任意個項并返回新數組的長度。

重排序方法

reverse()方法會反轉數組項的順序。
在默認情況下,sort()方法按升序排列數組項——即最小的值位于最前面,最大的值排在最后面。為了實現排序,sort()方法會地哦啊用每個數組項的toString()轉型方法,然后比較得到的字符串,以確定如何排序。這種排序方式在很多情況下都不是最佳方案,因此sort()方法可以接收一個比較函數作為參數,以便制定哪個值位于哪個值的前面。

reverse()和sort()方法的返回值是經過排序之后的數組

操作方法

concat()方法可以基于當前數組中的所有項創建一個新數組。
slice()方法能夠基于當前數組中的一或多個項創建一個新數組。slice()方法可以接受一或者兩個參數,即要返回項的起始和結束位置。(不會改變原數組)
splice()方法主要是向數組的中部插入值。(刪除、插入、替換)該方法改變原數組的值。

位置方法

ECMAScript為數組實例添加了兩個位置方法:indexOf()和lastindexOf()這兩個方法都返回要查找的項在數組中的位置,或者在沒有找到的情況下返回-1。這兩個方法都接受兩個參數:要查找的項和表示查找起點位置的索引(可選的)。

迭代方法

ECMAScript為數組定義了五個迭代方法:

every():對數組中的每一項運行給定函數,如果該函數對每一項都返回 true,則返回 true。
filter():對數組中的每一項運行給定函數,返回該函數會返回 true 的項組成的數組。
forEach():對數組中的每一項運行給定函數。這個方法沒有返回值。
map():對數組中的每一項運行給定函數,返回每次函數調用的結果組成的數組。
some():對數組中的每一項運行給定函數,如果該函數對任一項返回 true,則返回 true。

歸并方法

ECMAScript 5 還新增了兩個歸并數組的方法:reduce()和 reduceRight()。這兩個方法都會迭代數組的所有項,然后構建一個最終返回的值。
使用 reduce()和reduceRight()方法可以執行求數組中所有值之和的操作,比如:
var values = [1,2,3,4,5];
var sum = values.reduce(function(prev, cur, index, array){
return prev + cur;
});
alert(sum); //15

Date類型

創建日期對象,使用new操作符和Date構造函數即可:
var now = new Date();
在調用Date構造函數而不傳遞參數的情況下,新創建的對象自動獲得當前日期和時間。 為了可以接受表示日期的字符串參數,ECMAScript提供了兩個方法:Date.parse()和Date.UTC()。
ECMAScript添加了Date.now()方法,返回表示調用這個方法時的日期和時間的毫秒數。

繼承的方法

Date類型也重寫了toLocaleString()、toString()和valueOf()方法。
toLocaleString()方法會按照與瀏覽器相適應的格式返回日期與時間,而toString()方法則通常返回帶有時區信息的日期和時間。至于valueOf()方法,則根本不返回字符串,而是返回日期的毫秒表示。

Function類型

函數實際上是對象,函數名實際上也是一個指向函數對象的指針,不會與某個函數綁定。每個函數都是Function類型的實例,而且都與其他引用類型一樣具有屬性和方法。
函數通常是使用函數聲明語法定義的:(函數聲明提升)

function sum (sum1,sum2) {  return sum1 + sum2;  }

還有一種方式,使用函數表達式定義函數:

var sum = function(sum1,sum2) {  return sum1 +sum2 ;  };

注意:要訪問函數指針而不執行函數的話,必須去掉函數名后面的圓括號。

函數內部屬性

在函數內部,有兩個特殊的對象:arguments和this。arguments是一個類數組對象,包含著傳入函數中的所有參數。該對象有一個屬性,該屬性有一個指針,指向擁有這個arguments對象的函數。this引用的是函數據以執行的環境對象。(當在網頁的全局作用域中調用函數時,this對象引用的就是window)

函數屬性和方法

屬性

每個函數都包含兩個屬性:length和prototype。
length屬性表示函數希望接收的命名參數的個數。
對于ECMAScript中的引用類型而言,prototype是保存它們所有實例方法的真正所在。prototype屬性是不可枚舉的,所以使用for-in無效。

方法

每個函數都包含兩個非繼承而來的方法:apply()和call()
這兩個方法的用途都是在特定的作用域中調用函數,實際上等于設置函數體內this對象的值。作用實例:1.傳遞參數 2.擴充函數賴以運行的作用域
EAMAScript還定義了一個方法:bind()
這個方法會創建一個函數的實例,其this值會被綁定到傳給bind()函數的值。
每個函數繼承的toLocaleString()、toString()和valueOf()方法始終都返回函數的代碼。

對象

對象是某個特定引用類型的實例。新對象是使用new操作符后跟一個構造函數來創建的。

new

new運算符的作用是創建一個對象實例。這個對象可以是用戶自定義的,也可以是帶構造函數的一些系統自帶的對象。如果 new 表達式之后的構造函數返回的不是JavaScript內置的引用對象(Object,String等)new會創建一個匿名對象并返回;如果是內置引用對象或者原始類型就會覆蓋匿名對象。(無 return 時其實為 return 原始類型 undefined)

構造函數

構造函數本身就是一個函數,只不過該函數是出于創建新對象的目的而定義的。

JavaScript中object和Object的區別

object

使用typeof檢測數據類型的時候,只要檢查的變量是一個對象,或者是null,那么它就會返回object。

Object

Object 是 JavaScript 中一個重要的對象,其它對象都是基于它的,包括你創建的函數。

typeof 操作符和 instanceof 操作符的區別

確定一個值是哪種基本類型可以使用 typeof操作符,而確定一個值是哪種引用類型可以使用instanceof操作符。

function和Function

ECMAScript 的Function實際上就是一個功能完整的對象。而function這個關鍵字是用來創建所有對象的構造函數或者使用關鍵字來定義普通函數的類和對象,var a=new function(){}實際上是用構造函數的方法創建了一個匿名對象的實例,而并不是系統內置對象Function的實例。所以a instanceof Function返回false,typeof返回"object"。

什么時候typeof返回"function"呢?

function a (){ }  //undefined  typeof a  //"function"

【推薦學習:javascript高級教程】

贊(0)
分享到: 更多 (0)
?
網站地圖   滬ICP備18035694號-2    滬公網安備31011702889846號
日韩人妻无码AⅤ中文字幕你懂的 日韩人妻无码AⅤ中文字幕 | 亚洲欧洲精品成人久久曰影片| 亚洲AV无码专区在线电影| 韩国羞耻漫画免费| 国色精品卡一卡2卡3卡4卡免费| 精产国品一二三区别9977| 高清欧美精品XXXXX在线看| 国产成人精品免费久久久久| 宝贝把腿张开我要添你下边动态图| 被黑人下药做得受不了| 公玩弄年轻人妻HD| 国产又粗又湿又刺激18禁| 久久精品免费一区二区三区| 内射人妻无码色AV天堂| 日本大胆欧美人术艺术| 天堂资源中文WWW| 亚洲成AV人最新地堂无码| 在床上拔萝卜视频高清免费看| XXXXX69HD护士19老师| 国产AⅤ激情无码久久久无码| 国产一区二区三精品久久久无广告| 久久AV无码精品人妻出轨| 欧美高清熟妇啪啪内射不卡自拍| 久久这里精品国产99丫E6| 欧美老人巨大XXXX做受视频| 免费无码又爽又刺激高潮的动态图| 久久精品国产99久久久小说| 男生J桶进女人P又色又爽又黄| 少妇高潮喷潮久久久影院| 日韩精品久久久久久免费| 无套内谢孕妇毛片免费看看| 一本色道久久88—综合亚洲精品| АⅤ天堂中文在线网官网| 国产精品露脸国语对白| 久久久久精品无码观看不卡| 日本50岁丰满熟妇XXXX| 亚洲AV日韩AV永久无码免下载 | 欧美精品第1页WWW| 脱了老师内裤猛烈进入的软件| 亚洲最大av在线| 成人欧美一区二区三区在线观看| 黑人狂虐中国人妻陈艳| 欧美日韩精品一区二区三区不卡| 天天做天天爱天天综合网 | 久久久亚洲欧洲日产国码二区| 日本JAPANESE猛男GAY| 亚洲AV中文无码字幕色本草| AV无码一区二区大桥久未| 99在线精品免费视频九九视| 国产精品高潮呻吟AV久久动漫| 久久人人爽人人爽AV片| 日日摸夜夜爽无码毛片精选| 亚洲色精品一区二区三区| 北条麻妃国产九九九精品视频| 激情偷乱人伦小说免费看| 精品无码黑人又粗又大又长| 久久WWW免费人成_看片| 人人人人人人一摸| 亚洲乱码一区二三四区AVA| 亚洲熟妇无码一区二区三区导航| 波多野结衣乳巨码无在线| 精品无码无人网站免费视频| 搡老女人911熟妇老熟女| 无码高清一区二区三区| 中文字幕无码视频手机免费看| 国产精品偷伦视频免费观看了| 年轻漂亮岳每4乱理2| 亚洲AV日韩综合一区二区三区| 暗交拗女一区二区三区| 久久精品国产99久久香蕉| 少女たちよ在线观看动漫在线观看| 又小又紧女MAGNET| 国产无人区一码二码三码MBA| 欧洲精品免费一区二区三区| 色狠狠色噜噜AV一区| 伊人久久大香线蕉综合5G| 国产毛片一区二区精品| 人妻无码久久精品人妻| 一区二区不卡AV免费观看| 国产无遮挡无码视频免费软件| 人人做人人澡人人爽欧美| 伊人色综合九久久天天蜜桃 | 白嫩极品女粉嫩喷水视频的| 久久天天躁夜夜躁狠狠85| 玩弄老太婆BBW视频| 啊灬啊灬快灬高潮了视频| 久久综合九色欧美综合狠狠| 亚洲AV无码成人精品| 俄罗斯美女做爰XXXⅩ啪啪| 女M羞辱调教视频网站| 亚洲欧美偷拍内射白浆| 国产麻豆MD传媒视频| 色婷婷五月综合亚洲影院| B里可以放多少个鸡蛋| 久久久无码中文字幕久| 亚洲丰满性熟妇ⅩXXOOO| 国产精品国产三级国产AV中文| 人人爽人人爽人人片AV| 18禁黄网站禁片免费观看APP| 成人网站在线进入爽爽爽 | 中文文字幕文字幕亚洲色| 精品国产乱码久久久久久小说 | 国产精品国产三级国产专I| 日本熟妇毛茸茸XXXX| 亚洲第一无码AV播放器下载| 国产精品成人免费视频网站| 日韩欧美中文字幕看片你懂的| BBW大屁股肥臀妇女ASS| 蜜桃一区二区hd视频网站 | 成年午夜免费韩国做受| 欧美成人精品一区二区综合| 在床上拔萝卜视频高清免费看| 久久久久精品少妇9999| 亚洲欧美偷拍内射白浆| 娇妻被交换粗又大又硬视频| 亚洲AV无码国产一区二区三区| 国产精品国色综合久久| 天黑黑影院免费观看视频在线播放 | 国产AV旡码专区亚洲AV苍井空| 久久天天躁夜夜躁狠狠躁| 亚洲欧美日韩国产成人| 极品YIN荡人妻合集H| 亚洲AV无码乱码国产精品久久 | 欧美视频一区二区三区四区| 97SE亚洲国产综合自在线尤物| 免费A级毛片在线播放不收费| 无码AV在线一本无码| 国产AV无码专区亚洲AV毛片搜| 色婷婷五月综合亚洲小说 | BBOX撕裂BASS俄罗斯| 欧美精产国品一二三产品区别| 97精品人妻系列无码人妻| 男人扒开女人下面猛进猛出 | 中文乱码人妻一区二区三区视频 | 久久久久精品无码一区二区三区| 亚洲日韩中文字幕日本| 久久精品国产99精品最新| 亚洲最大AV无码网站| 老师你的好软水好多的时候图片| 在线观看片免费人成视频无码| 免费无遮挡无码永久在线观看视频 | 大地韩国日本HD免费完整| 久久蜜桃86人妻arvi| 一个吃我奶头两个舔我下面| 美女黄网站免费福利视频| 777国产偷窥盗摄精品品在线| 欧美猛少妇色XXXXⅩBBBB| 宝宝湿透了还嘴硬怎么回事| 色噜噜狠狠色综合AV| 国产精华最好的产品人V中文 | 在线精品自偷自拍无码中文| 免费A级毛片无码韩国| CAOPOREN超碰最新地址| 日本三线和韩国三线的市场定位| 国产99在线 | 欧美| 小洞饿了想吃大香肠喝热牛奶是| 狠狠色噜噜狠狠狠狠888奇禾| 亚洲中文字幕在线第六区 | 97无码免费人妻超级碰碰夜夜| 人妻丰满熟妇av无码区网站| 丰满熟妇BBWBBWBBWBB| 午夜亚洲AV日韩AV无码大全| 丰满人妻被黑人中出849| 无码AV免费一区二区三区试看| 国产一二三四2021精字窝| 亚洲色精品AⅤ一区区三区 | 久久AV无码AV高潮AV喷吹| 1000部无遮挡拍拍拍免费视频| 全国主要城市天气预报| 国产成人精品人人2020视频| 亚洲丰满多毛XXXⅩ熟妇| 两个领导在车里吃我奶| 别揉我奶头~嗯~啊~免费视频 | 日本熟妇裸交ⅩXX视频全过程| 国产精品亚洲A∨天堂| 亚洲日韩精品A∨片无码加勒比| 男人女人做爽爽18禁网站| 动漫精品啪啪一区二区三区| 亚洲AV色香蕉一区二区三区夜夜嗨| 久久香蕉超碰97国产精品| 超碰97人人做人人爱可以下载| 小奶瓶(产奶)沈姜| 久久天天躁夜夜躁狠狠85| 白丝老师用腿夹得我好爽的视频| 午夜精品一区二区三区在线视| 久久婷婷六月综合色液啪| 被学长抱进小树林C个爽作文| 无遮挡粉嫩小泬久久久久久久动漫| 久久久久夜色精品国产明星| JIZZ中国JIZZ在线观看| 无码天堂亚洲国产AV久久| 老牛aV无码一区二区人妻| 吃了继兄开的药后我做的梦更长了| 亚洲AV无码成人网站国产网站 | 97国产精华最好的产品亚洲| 天堂AⅤ大芭蕉伊人AV| 久久天天躁狠狠躁夜夜96流白浆| 丁香狠狠色婷婷久久综合| 亚洲熟妇中文字幕日产无码| 日韩一区二区高清视频|