成人无码视频,亚洲精品久久久久av无码,午夜精品久久久久久毛片,亚洲 中文字幕 日韩 无码

資訊專欄INFORMATION COLUMN

深入了解JavaScript對象(1)--原始類型和引用類型

mindwind / 919人閱讀

摘要:原始類型和引用類型原始類型存儲簡單數(shù)據(jù)值,引用類型存儲對象,其本質(zhì)是指向內(nèi)存位置的應(yīng)用。保存指向內(nèi)存中實(shí)際對象所在位置的指針鑒別引用類型操作符以一個對象和一個構(gòu)造函數(shù)為參數(shù)。這些特殊引用類型的存在使得原始引用類型用起來和對象一樣方便。

原始類型和引用類型

1.原始類型存儲簡單數(shù)據(jù)值,引用類型存儲對象,其本質(zhì)是指向內(nèi)存位置的應(yīng)用。

注:其他編程語言用棧存儲原始類型,用堆存儲引用類型。JavaScript原始值被保存在變量對象內(nèi),而引用值則作為一個指針保存在變量對象內(nèi),該指針指向?qū)嶋H對象在內(nèi)存中的存儲位置。

2.原始類型:boolean,number,string,null,undefined。原始類型的變量直接保存原始值(而不是一個指向?qū)ο蟮闹羔槪?,也就是說,當(dāng)你將原始值賦值給一個變量時,該值被復(fù)制到變量中,每一個變量都有它自己的一份數(shù)據(jù)拷貝。

var name = "張三";
var age = 18;
var show = true;
var object = null;
var flag = undefined;

// 一個變量的改變并不會影響到其他變量
var color1 = "red";
var color2 = color1;
console.log(color1);    // red
console.log(color2);    // red
color2 = "blue";
console.log(color1);    // red
console.log(color2);    // blue

3.引用類型:引用類型不在變量中保存對象,所以例子中的object變量實(shí)際上并不包含對象的實(shí)例,而是一個指向內(nèi)存中實(shí)際對象所在位置的指針(或者說是引用)。這就意味著,當(dāng)你將一個對象賦值給變量時,實(shí)際上賦值給這個變量的是一個指針。也就是說,這兩個變量指向內(nèi)存中的同一個對象。

var object = new Object(); //保存指向內(nèi)存中實(shí)際對象所在位置的指針

4.鑒別引用類型

instanceof操作符以一個對象和一個構(gòu)造函數(shù)為參數(shù)。如果對象是構(gòu)造函數(shù)所指定的類型的一個實(shí)例,instanceof返回true;否則返回false。intanceof操作符可鑒別繼承類型,意味著所有的引用類型都繼承Object。

var items = [];
var object = {};
function reflect(value){
    return value;
}
console.log(items instanceof Array);    // true
console.log(object instanceof Object);    // true
console.log(reflect instanceof Function);    // true

5.鑒別數(shù)組
當(dāng)JavaScript的值在同一個頁面不同框架之間傳來傳去,再用instanceof來鑒別引用類型的時候,就可能出現(xiàn)問題,因?yàn)槊恳粋€框架都有它自己的全局上下文--Object、Array以及其他內(nèi)建類型的版本。所以,當(dāng)你把數(shù)組從一個框架傳到另一個框架時,instanceof就無法識別,因?yàn)樵摂?shù)組是來自不同框架的Array的實(shí)例。所以這個時候,得用Array.isArray()方法來鑒別數(shù)組,該方法只兼容IE9及以上。

6.原始封裝類型
原始封裝類型共有3種,(String,Number和Boolean)。這些特殊引用類型的存在使得原始引用類型用起來和對象一樣方便。例如:

var name = "張三";
var firstChar = name.charAt(0);
console.log(firstChar);    // 張

// 背后發(fā)生的事情
var name = "張三";
var temp = new String(name);
var firstChar = temp.charAt(0);
temp = null;
console.log(firstChar);    // 張

var name = "張三";
name.last = "王五";
console.log(name.last);    // undefined

// 背后發(fā)生的事情
var name = "張三";
var temp = new String(name);
temp.last = "王五";
temp = null;

var temp = new String(name);
console.log(temp.last);    // undefined
temp = null;

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://m.hztianpu.com/yun/83589.html

相關(guān)文章

  • JavaScript 深入了解基本類型引用類型的值

    摘要:原文鏈接一個變量可以存放兩種類型的值,基本類型的值和引用類型的值。引入了一種新的原始數(shù)據(jù)類型,表示獨(dú)一無二的值。 原文鏈接 一個變量可以存放兩種類型的值,基本類型的值(primitive values)和引用類型的值(reference values)。 ES6 引入了一種新的原始數(shù)據(jù)類型 Symbol,表示獨(dú)一無二的值。它是 JavaScript 語言的第七種數(shù)據(jù)類型,前六種是:Un...

    Mr_houzi 評論0 收藏0
  • 深入js隱式類型轉(zhuǎn)換

    摘要:結(jié)合實(shí)際中的情況來看,有意或無意中涉及到隱式類型轉(zhuǎn)換的情況還是很多的。此外當(dāng)進(jìn)行某些操作時,變量可以進(jìn)行類型轉(zhuǎn)換,我們主動進(jìn)行的就是顯式類型轉(zhuǎn)換,另一種就是隱式類型轉(zhuǎn)換了。 前言 相信剛開始了解js的時候,都會遇到 2 ==2,但 1+2 == 1+2為false的情況。這時候應(yīng)該會是一臉懵逼的狀態(tài),不得不感慨js弱類型的靈活讓人發(fā)指,隱式類型轉(zhuǎn)換就是這么猝不及防。結(jié)合實(shí)際中的情況來看...

    tomato 評論0 收藏0
  • JavaScript 是如何工作的:JavaScript 的共享傳遞按值傳遞

    摘要:它對數(shù)組和對象使用按值傳遞,但這是在的共享傳參或拷貝的引用中使用的按值傳參。例如在這里,變量和值在執(zhí)行期間存儲在堆棧中。返回值這是可選的,函數(shù)可以返回值,也可以不返回值。變量被推入堆棧,從而在執(zhí)行時成為的副本。 這是專門探索 JavaScript 及其所構(gòu)建的組件的系列文章的第 22 篇。 想閱讀更多優(yōu)質(zhì)文章請猛戳GitHub博客,一年百來篇優(yōu)質(zhì)文章等著你! 如果你錯過了前面的章節(jié),可...

    keithyau 評論0 收藏0
  • JavaScript 是如何工作的:JavaScript 的共享傳遞按值傳遞

    摘要:它對數(shù)組和對象使用按值傳遞,但這是在的共享傳參或拷貝的引用中使用的按值傳參。例如在這里,變量和值在執(zhí)行期間存儲在堆棧中。返回值這是可選的,函數(shù)可以返回值,也可以不返回值。變量被推入堆棧,從而在執(zhí)行時成為的副本。 這是專門探索 JavaScript 及其所構(gòu)建的組件的系列文章的第 22 篇。 想閱讀更多優(yōu)質(zhì)文章請猛戳GitHub博客,一年百來篇優(yōu)質(zhì)文章等著你! 如果你錯過了前面的章節(jié),可...

    陳偉 評論0 收藏0
  • 【基礎(chǔ)系列】javascript數(shù)據(jù)類型原始類型

    摘要:返回布爾值,表示參數(shù)字符串是否在原字符串的頭部。布爾值中布爾值有兩個和和都表示值的空缺,但事從背后更深遠(yuǎn)的角度考慮,他們的還是有差別的。首先我們來看一下類型轉(zhuǎn)化表任意的值都可以轉(zhuǎn)換為布爾值,只有會被轉(zhuǎn)換為,其他所有值都會被轉(zhuǎn)換成。 開辟了一個關(guān)于javascript的基礎(chǔ)系列,更加深入、細(xì)致的了解這門語言。今天分享的是js的數(shù)據(jù)類型。 javascript的數(shù)據(jù)類型可以分為兩類:原始類...

    aikin 評論0 收藏0

發(fā)表評論

0條評論

mindwind

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<