基本包裝類型

JS中的數(shù)據(jù)分為基本數(shù)據(jù)和引用類型數(shù)據(jù)兩大類,最大的區(qū)別在于:

  • 基本數(shù)據(jù)類型的值不可變,引用類型可變
var name = "str1";
name = "str2";
console.log(name)//str2

這里改變的只是name的指針指向,str1和str2并沒(méi)有改變

  • 基本數(shù)據(jù)類型不能添加方法和屬性,引用類型可以
  • 基本類型賦值是簡(jiǎn)單賦值 創(chuàng)建新值 在棧中創(chuàng)建新的儲(chǔ)存位置
    把a(bǔ)的值賦予b,此時(shí)內(nèi)存棧中有兩個(gè)值,一個(gè)是另一個(gè)的副本,互不影響
  • 引用類型的賦值是對(duì)象引用
    首先引用類型的值保存方式是指針保存在棧區(qū),引用類型的值保存在堆區(qū)
    引用類型之間的賦值是指針間的賦值
    引用類型之間的比較是指針間的比較
    var obj1 = {}; var obj2= {}; console.log(obj1== obj2)//false

基本包裝類型是什么

為了便于操作基本類型值,ECMAScript提供了三個(gè)特殊的引用類型:Boolean、Number、String。每當(dāng)讀取一個(gè)基本類型值的時(shí)候,后臺(tái)會(huì)創(chuàng)建一個(gè)對(duì)應(yīng)的基本包裝類型多的對(duì)象,從而可以調(diào)用一些方法來(lái)操作這些數(shù)據(jù)。調(diào)用過(guò)程如下:

var s1="some text";
var s2=s1.substring(1)

這段代碼經(jīng)歷了如下過(guò)程,都是在后臺(tái)進(jìn)行的:
1.創(chuàng)建一個(gè)String類型的一個(gè)實(shí)例;
2.在實(shí)例上調(diào)用指定方法;
3.銷毀這個(gè)實(shí)例

引用類型和基本包裝類型的主要區(qū)別在于對(duì)象的生存周期。自動(dòng)創(chuàng)建的基本包裝類型的值只存在于代碼執(zhí)行的一瞬間。所以我們不能在運(yùn)行期間給基本包裝類型值添加方法。

直接使用構(gòu)造函數(shù)和使用new 調(diào)用構(gòu)造函數(shù)創(chuàng)建的基本包裝類型的值 仍然有不同點(diǎn)
    var s1="text";
    s1.color="red";
    console.log(s1.color);//undefined
    var s_obj=String("text");
    s_obj.color='red';
    console.log(s_obj.color);//undefined
    var s_obj_new=new String("text");
    s_obj_new.color='red';
    console.log(s_obj_new.color);//red
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容

  • 人丑就該多看書(shū) 文章來(lái)自其他博文。 *.location.href 用法: javascript> functio...
    櫻花樹(shù)下_529d閱讀 395評(píng)論 0 0
  • 1. 什么是跨域? 跨域一詞從字面意思看,就是跨域名嘛,但實(shí)際上跨域的范圍絕對(duì)不止那么狹隘。具體概念如下:只要協(xié)議...
    w_zhuan閱讀 541評(píng)論 0 0
  • 1. 什么是跨域? 跨域一詞從字面意思看,就是跨域名嘛,但實(shí)際上跨域的范圍絕對(duì)不止那么狹隘。具體概念如下:只要協(xié)議...
    他在發(fā)呆閱讀 830評(píng)論 0 0
  • 10表示間隔10秒刷新一次 window.location.reload(true); 如果是你要刷新某一個(gè)ifr...
    自由加咖啡閱讀 5,516評(píng)論 0 2
  • 昨天晚上為了孩子的作業(yè),又吵了起來(lái)!他嫌孩子做作業(yè)不認(rèn)真,一頓暴喊,我是一聽(tīng)到他喊叫也就惱了,他就從來(lái)沒(méi)有心平氣和...
    Rose夢(mèng)兒閱讀 175評(píng)論 0 0