99热99这里只有精品6国产,亚洲中文字幕在线天天更新,在线观看亚洲精品国产福利片 ,久久久久综合网

歡迎加入QQ討論群258996829
麥子學(xué)院 頭像
蘋果6袋
6
麥子學(xué)院

Javascript學(xué)習(xí)之內(nèi)置對(duì)象Object詳解

發(fā)布時(shí)間:2017-02-27 18:30  回復(fù):0  查看:2181   最后回復(fù):2017-02-27 18:30  
JavaScript的簡(jiǎn)單數(shù)據(jù)類型包括:Undefined、Null、Boolean、Number、String。JavaScript中這五種基本數(shù)據(jù)類型不是對(duì)象,其他所有值都是對(duì)象。其中還有一些對(duì)象子類型,通常被稱為內(nèi)置對(duì)象(引用類型),一起來看看吧,希望對(duì)大家 學(xué)習(xí)javascript 有所幫助。
  1、Object
  2、Array
  3、Date
  4、RegExp
  5、Function
  6、Boolean
  7、Number
  8、String
   創(chuàng)建對(duì)象的三種方法
  創(chuàng)建對(duì)象有三種方法:
  1、對(duì)象字面量,即用{}生成,一個(gè)對(duì)象字面量就是包圍在一對(duì)花括號(hào)中的零個(gè)或多個(gè)“名/值”對(duì)
  2、構(gòu)造函數(shù),利用Object()構(gòu)造函數(shù)生成
  3、Object().create方法生成
  注意:推薦第一種寫法,第三種方法多用在繼承的場(chǎng)合
  var myobj = {
  key : value;
  }
  var myobj = new Object()
  myobj.key = value;
  var myobj = Object.create(Object.prototype);
  myobj.key = value;
   引用
  對(duì)象通過引用來傳遞,它們永遠(yuǎn)不會(huì)被復(fù)制。簡(jiǎn)單來說就是多個(gè)變量指向同一個(gè)對(duì)象,那么他們都是這個(gè)對(duì)象的引用,多個(gè)變量它們都指向同一個(gè)內(nèi)存地址,如果通過一個(gè)變量修改了指向的對(duì)象,那么所有指向這個(gè)對(duì)象的變量都會(huì)發(fā)生改變
  var o = {
  name : 'laowang'
  };
  var b = o;
  b.name = 'liu';
  console.log(o.name); //liu
   屬性操作
  讀取屬性
  讀取對(duì)象的屬性有兩種方法,一種是用點(diǎn)運(yùn)算符,另一種是用方括號(hào)運(yùn)算符
  var o = {
  name : 'laowang'
  };
  o.name; //'laowang'
  o['name']; //'laowang'
  注意:點(diǎn)操作符要求屬性名滿足標(biāo)示符的命名規(guī)范,而方括號(hào)運(yùn)算符的方式可以接受任何字符串作為屬性名
  例如:
  var o = {
  name : 'laowang',
  'super-f' : 2
  };
  console.log(o.super-f); //報(bào)錯(cuò)
  console.log(o['super-f']); //2
  可以在方括號(hào)中括住一個(gè)字符串表達(dá)式的方式來訪問屬性
  var o = {
  name1 : 'laowang',
  name2 : 'liaomou',
  name3 : 'PDD'
  };
  for(var i=1;i<4;i++){
  console.log(o['name'+i]);//laowang liaomou PDD
  };
  在對(duì)象中,屬性名永遠(yuǎn)都是字符串,如果你使用String以外的其他值作為屬性名,那他首先會(huì)被轉(zhuǎn)換為一個(gè)字符串。即使是數(shù)字也不例外
  var myObject = {};
  myObject[true] = 'foo';
  myObject[2] = 't';
  myObject['true']; //"foo"
  myObject['2']; //"t"
  寫入屬性
  可以用點(diǎn)運(yùn)算符和方括號(hào)運(yùn)算符寫入屬性
  var myObject = {
  name : 'laowang'
  };
  //兩種方法的效果是一樣的
  var myObject = {};
  myObject.name = 'laowang';
  myObject[name] = 'laowang';
  查看屬性
  可以使用Object.keys()方法
  var myObject = {
  name : 'laowang',
  address : '西青區(qū)'
  };
  console.log(Object.keys(myObject)); //["name", "address"]
  刪除屬性
  刪除屬性可以用delete運(yùn)算符,它不會(huì)觸及原型鏈中的任何對(duì)象,刪除對(duì)象的屬性可能會(huì)讓來自原型鏈中的屬性透現(xiàn)出來
  var myObject = {
  name : 'laowang',
  address : 'xi'
  };
  var anotherObject = Object.create(myObject);
  anotherObject.name = 'xiaoma';
  console.log(anotherObject.name);
  delete anotherObject.name;
  console.log(anotherObject.name); //laowang 刪除了自己本身的屬性,透現(xiàn)出來了原型的屬性
  delete anotherObject.address;
  console.log(anotherObject.address); //xi 不會(huì)刪除原型中的屬性
  檢測(cè)屬性是否存在
  我們要檢測(cè)一個(gè)屬性是否在對(duì)象中,可以使用in操作符
  var myObject = {
  name : 'laowang',
  address : 'xi'
  };
  console.log('name' in myObject); //true
  console.log('sex'in myObject); //false
  注意:in操作符會(huì)檢查屬性是否在對(duì)象及原型鏈中,如果要檢測(cè)一個(gè)屬性是否在對(duì)象中,不涉及原型鏈,可以使用hasOwnProperty()
  var myObject = {
  name : 'laowang',
  address : 'xi'
  };
  var anotherObject = Object.create(myObject);
  console.log('name' in anotherObject); //true
  console.log(anotherObject.hasOwnProperty('name')); //false
  遍歷屬性
  有時(shí)需要遍歷一個(gè)對(duì)象的所有屬性,可以使用for..in語句
  var myObject = {
  name : 'laowang',
  address : 'xi',
  sex : 'man'
  };
  for(var i in myObject){
  console.log(myObject ); //laowang xi man
  };
  注意:for..in語句會(huì)遍歷對(duì)象的可枚舉屬性,包括原型鏈
  例如:
  var myObject = {
  name : 'laowang',
  address : 'xi',
  sex : 'man'
  };
  //讓myObject的name屬性變得不可枚舉
  Object.defineProperty(
  myObject,
  'name',
  {enumerable:false}
  );
  for(var i in myObject){
  console.log(myObject); //xi man
  };
  如果想要過濾掉那些你不想要的值,最為常用的過濾器是hasOwnProperty方法,以及使用typeof來排除函數(shù)

來源:博客園
您還未登錄,請(qǐng)先登錄

熱門帖子

最新帖子

?