JavaScript數據類型詳解

  1. 最新的 ECMAScript 標準定義了 7 種數據類型:
  • 6 種原始類型:
  • Boolean
  • null
  • Undefined
  • Number
  • String
  • Symbol(ECMAScript 6 新定義,符號類型)
  • 和 Object
2. 簡單瞭解到JavaScript的7種數據類型,下面咱們來詳細介紹下Object數據類型。
在JavaScript語言中,全部的類最底層的原型鏈都會指向Object的原型。所以基本上全部的類都繼承了Object原型方法。也得此緣由Object數據類型又能夠分解以下。
3. 以上詳細列舉了JavaScript中的Object數據類型。那麼順便來談一談引用類型。什麼是引用類型啦,它又有什麼做用呢。
在JavaScript語言中,傳參的方式又兩種:
  • ①傳值 : 將a參數的值傳給b參數,b改變 a並不發生改變 (總結:全部的原始類型都是傳值)
  • ②引用:將a參數的地址傳給b參數引用,這是b改變數據裏面的內容,a也發生改變(總結:全部的Object類型都是引用)
//基礎類型數據
var a = 'zhangxiao',
    b = 123,
    c = true;

//Object類型數據
var d = {name:"zhangxiao",age:27,isMarry:false},
    d1 = [d];//將d放入d1數組中
console.log(d, '\n', d1, '\n', d2);
// {name:"zhangxiao", age:27, isMarry:false}
// [{name:"zhangxiao", age:27, isMarry:false}]
//修改基礎類型數據
var e = a,
    f = b,
    g = c;
e = 'zx',
f = 321, 
g=false;
console.log(a, b, c, '----', e, f, g);
// 'zhangxiao', 123, true, ----, 'zx', 321, false
//修改Object類型數據
var h = d,
    d2 = d1.concat(); //淺複製d1數組
h['isMarry'] = true;
d2[0]['name'] = 'zx';
//引用類型的數據改變,其全部指向引用的數據均改變,基礎類型改變,並不引發其餘原始數據改變
console.log(h, '\n', d, '\n', d1, '\n', d2, '\n', d1===d2, '\n', d1[0]===d2[0]);
// {name:"zx",age:27,isMarry:true}
// {name:"zx",age:27,isMarry:true}
// [{name:"zx",age:27,isMarry:true}]
// [{name:"zx",age:27,isMarry:true}]
// false  /** 由於d2是有d1數組鏈接生成的新數組,等同於淺拷貝,故d1和d2是兩個不一樣數組 */
// true   /** 由於d2是d1淺拷貝,而d1中的元素是Object類型,故d2的元素是引用的d1元素也所以是同一元素 */複製代碼
那麼看到以上的引用事後是否是會想到它有什麼用呢,怎麼用它!
在此我在給你們舉個例子,Vue是當前用的比較火的一個框架,想必你們必定遇到過父子組件間通訊的問題,除了運用Vue提供的 $emit,還能夠運用上述所說的引用方式通訊。子組件修改數據,父組件也跟隨修改,由於子組件的數據是經過引用方式得到。這樣的通訊高效簡潔,Vue官方也非常推薦。固然它的用途不只體現如此,還好比函數傳參,如a函數想修改b函數的變量,這時運用引用也是很恰當的。
相關文章
相關標籤/搜索