国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

淺談js中對象的使用

2019-11-20 09:15:49
字體:
來源:轉載
供稿:網友

簡單記錄javascript中對象的使用

一、創建對象

//創建一個空對象  var o={};  //創建一個含有兩個屬性的對象,x、y  var o2={x:12,y:'12',name:'JS'};  //此對象中的author屬性的值還是一個對象  var o3={x:12,author:{name:'JS',age:23,address:'china'}};  //創建一個空對象和{}一樣  var o4=new Object();  //給對象增加name屬性  o4.name='JS'

上面使用了兩種方式創建對象,一種是字面量的方式,另一種是使用new創建對象,new后面的Object叫做構造函數。

二、對象的訪問

從上面我們可以看到我們給對向o4增加了一個屬性name,使用的是點號的方式,即對象名.屬性名,這就是其中的一種訪問方式。訪問對象中的屬性值有兩種方式,第一種是使用點號(.),第二種是使用數組的方式(對象名[屬性名])。

//創建一個空對象  var o={};  //創建一個含有兩個屬性的對象,x、y  var o2={x:12,y:'12',name:'JS'};  //此對象中的author屬性的值還是一個對象  var o3={x:12,author:{name:'JS',age:23,address:'china'}};  //創建一個空對象和{}一樣  var o4=new Object();  //給對象增加name屬性  o4.name='JS'  /**訪問對象的屬性值  */  //1、使用點號的方式  var x=o2.x;//12  var authorOfName=o3.author.name;//JS  var name=o4.name;//JS    //2、使用數組的方式  var x2=o2['x'];//12  var authorOfName2=o3['author']['name'];//JS  var name2=o4['name'];//JS

使用點號的方式來訪問對象中的屬性值比較好理解,但是使用數組的方式,不是太好理解,在javascript中,所有的對象都是關聯數組,所謂關聯數據就是這種方式看起來像是數組的訪問方式,只不過這種方式不是使用的索引而是字符串索引,為此叫做關聯數組。

上面訪問對象屬性值都是在知道對象屬性名的情況,如果不知道對象的屬性值呢?可以使用for/in循環遍歷對象中的值,

//創建一個含有兩個屬性的對象,x、y、name  var o2={x:12,y:'12',name:'JS'};  for(p in o2) {    var property=p;    var value=o2[p];    console.log(property);    console.log(value);  }

打印結果為:

x12y12nameJS

可以看出一共有三個屬性,且都打印了其值。

假如對象比較復雜可以加入一些判斷,判斷是否存在一個屬性,那么如何判斷一個對象是否包含了某個屬性呢,由于對象都繼承了Object,在Object中有hasOwnProperty()方法,用來判斷對象中是否存在一個屬性,返回值是布爾類型(boolean),注意此方法只會判斷是否存在對象自己的屬性,不會判斷對象繼承的屬性。

//創建一個含有兩個屬性的對象,x、y、name  var o2={x:12,y:'12',name:'JS'};  var b=o2.hasOwnProperty('name')//true  var b2=o2.hasOwnProperty('age')//false

三、新增、刪除屬性

在最開始我們給對象o4新增了一個name屬性,新增的方式其實和給屬性賦值是一樣的,還可以使用關聯數組的方式給對象增加屬性,

//創建一個含有兩個屬性的對象,x、y、name  var o2={x:12,y:'12',name:'JS'};  //刪除name屬性  delete o2.name;  var b=o2.hasOwnProperty('name')//false  //新增name屬性  o2['name']='javascript';  //由于已經存在了name屬性,這里是給name重新賦值  o2.name='js';  var b3=o2.hasOwnProperty('name');//true

上面,刪除了對象o2的name屬性,然后又使用關聯數組的方式新增了name屬性,接著使用點號的方式給name屬性重新賦值。

四、對象和字符串之間的轉化

在ECMAScript5中內置了對象和字符串之間的相互轉化,現在大多數主流瀏覽器都支持ECMAScript5,如果不支持可以從網上下載json2.js類庫,把此類庫引入到文件中便可以使用。

對象和字符串之間的轉化叫做對象序列化,即將對象的狀態轉化為字符串或者將字符串轉化為對象,這些轉化都使用JSON作為數據交換格式,JSON的全稱是JavaScript Object Notation。

把對象轉化為字符串使用JSON.stringify();把字符串轉化為對象使用JSON.parse(),

//定義一個對象  var o={name:'JavaScript',age:24};  //此種方式在轉化為對象是報錯,必須使用下面的方式  //var str="{name:'JavaScript',age:24}";  //正確的定義對象字符串  var str='{"name":"JavaScript","age":24}';  //把對象轉化為字符串  var str2=JSON.stringify(o);  console.log('str2:'+str2+',類型:'+(typeof str2));//str2:{"name":"JavaScript","age":24},類型:string  //把字符串轉化為對象  var o2=JSON.parse(str);  console.log('o2:'+o2+',類型:'+(typeof o2));//o2:[object Object],類型:object

上面實現了對象和字符串之間的相互轉化。

以上這篇淺談js中對象的使用就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 新邵县| 朝阳市| 翼城县| 马关县| 兴宁市| 天峨县| 东源县| 青浦区| 余庆县| 济南市| 社旗县| 大冶市| 辽阳县| 左贡县| 剑川县| 汤原县| 东乡| 察哈| 沙坪坝区| 兖州市| 射洪县| 定日县| 永定县| 永善县| 新泰市| 汨罗市| 潼南县| 洪雅县| 全州县| 南华县| 泰和县| 高陵县| 高邑县| 鄂尔多斯市| 环江| 堆龙德庆县| 万山特区| 横山县| 尼勒克县| 万州区| 西充县|