前端學習一屬性的新增/刪除/檢測。。。。。。
阿新 • • 發佈:2018-11-17
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title>屬性</title> <script> window.onload = function(){ //屬性的新增 ./[] // . 是取自身的屬性,[] 獲取的可以是變數。 //取自身屬性 var obj = {}; obj.name = 'sonia'; obj['age'] = 20; console.log(obj.age); console.log(obj['age']); //變數 var obj2 = {}; obj2.name = 'sonia'; var a = 'name'; console.log(obj2[a]); //屬性的刪除 delete var obj3 = {}; obj3.name = 'sonia'; obj3.age = 12; obj3.state=false; delete obj3.name;//刪除name屬性 delete obj3['name'];//刪除name屬性 //屬性的檢測 判斷是否存在該屬性 // 1、in 運算子(可以獲取繼承來的屬性) var obj4 ={ name:'sonia', age:20 }; //檢測屬性name是否存在於obj4這個物件中 console.log('name' in obj4);//存在 true 不存在 false // 2、物件.hasOwnProperty() 方法 obj4.hasOwnProperty('name'); //!=underfined 值得判斷 console.log(obj4.name!==undefined); //= == === != !== //= 賦值; //== 判斷;=== 全等判斷(對型別也比較) //0=='0'=>true;0==='0'=>false; //列舉屬性 //for in //for(索引 in 陣列){}; var arr= ['a','b','c','d']; var o = {name:'sonia',age:23}; for( a in arr){ console.log(a);//打印出下標0,1,2,3 console.log(arr[a]);//打印出值a,b,c,d }; //for(屬性 in 物件){}; for( b in o){ console.log(b);//打印出:name,age console.log(o[b]);//打印出值sonia,23 }; //forEach() var arr2= ['a','b','c','d']; arr2.forEach(function(item,index){//無返回值 console.log(item);//abcd console.log(index);//0123 }); //map() 回撥函式支援return返回值 var arr3= ['a','b','c','d']; arr3.map(function(item,index){//無返回值 return item; }); //序列化 JSON.parse() JSON.stringify() //JSON.parse() 物件字串轉為物件 var o = "{name:'sonia',age:23}"; var o2 = JSON.parse(o);//這時你就可以這樣用:o.name //JSON.stringify() 物件轉為物件字串 var o = {name:'sonia',age:23}; console.log(typeof JSON.stringify(o));//轉換成了string型別。 //深拷貝(拷貝出另一個數組,沒有聯絡的陣列) //陣列 slice(開始,結束) concat() 兩個方法返回的是新陣列 var arr4= ['a','b','c','d']; arr4.slice(1,2);//b,從第一個開始到第二個結束不包括第二個 arr4.slice(0);//返回的是一個新的陣列,值與arr4一致。 var arrCopy = arr4.slice(0); arrCopy[0]='aaaa';//此處數值改變不會影響arr4[0]; //concat() var arr4= ['a','b','c','d']; var arrCopy = arr4.concat() arrCopy[0]='aaaa';//此處數值改變不會影響arr4[0]; //物件 var o = {name:'sonia',age:23}; var oCopy = JSON.parse(JSON.stringify(o)); oCopy.name = 'cccccc';//此處數值改變不會影響o.name; // 淺拷貝(引用 影子) //陣列 var oo2=[1,2,3,4]; var ooo=oo2; ooo[0]=23; console.log(oo2[0]);//23 //物件 var oo={name:'qwe',age:20}; var ooo=oo; ooo.age=23; console.log(oo.age);//23 } </script> </head> <body> </body> </html>