js中的面向对象part2

 。。。第一个重点:属性值的添加

./[]

var obj={}

obj.name="jialiting";//通过.来进行属性的添加,单引号和双引号都可以呢

obj['age']=20;

console.log(obj.name);

console.log(obj["age"]);

他们之间的区别

1,.取自身的一个属性

2[]可以是变量 

//实例

var obj2={};

obj2.name="jialiting";

obj2.a="aaa";

var a="name";

console.log(obj2["a"]);//的结果aaa 变量和字符串的区别是否添加字符串

console.log(obj2[a]);//的结果是jialiting 中的a是一个变量 obj2["name"];

。。。第二个是属性的删除

与后端的交互的时候,有时候一些值不需要呢

var obj3={}

onj3.name="lili"

obj3.age=20;

obj3.state=false;

var age="age";

 delete obj3.name;//也可以用[];删除属性 obj3["name"];

delete obj3["age"];

console.log(obj3);

delete obj3[age];

数组元素中的删除用push() splice() unshift()

。。。第三个重点是属性的检测

//属性的检测 判断对象中是否存在属性

//in 相当于对应的运算符 

 var obj4={

name:"jiali",//嵌套字面量必须用逗号

age:20,

};

console.log("name1" in obj4)//属性的名字  in 对象 false in可以获取继承的

//使用对象的方法 hasOwnproperty()

var obj5={

name:"jiali",

age:23

};

var a="name";

//obj5.hasOwnproperty("name"); true 获取不到继承

ob5.hasOwnProperty(a);a中是变量 变量可以分为全局变量和局部变量

。。。判断他是否是存在!=undefined值得判断

console.log(obj5.name!==undefined);//=的意思是赋值 true

 if(a=="name"){//如果为真表示

}//表示匹配

===全等 全等的概念就是值和类型进行匹配0===“0”类型匹配 一个是数字 一个是字符串

!=它表示不等于 取反

!== 

。。。第四个重点就是枚举属性

1.for in 

var arr=["q","a","c"];

var o={name:"jiali",age:20}

for(a in o){//for(属性 in 对象)a的类型是一个字符串

console.log(a);}//的结果是name age

console.log(o[a]);//的结果是jiali 20中a是一个变量

console.log(o.a);//的结果是 undefined undefined 记住不能写上o.a

//数组

for(a in arr){

console.log(arr[a]);//q a c

console.log(a);//0 1 2}

for (var i=0; i<10;i++){}

forEach()没有返回值

map() 回调函数中,支持return返回值

0.1 

var arr2=["a","b","c"]

arr2.forEach(function(item,index){

console.log(item)

//a b c

}

0.2

var arr3=["a","b","c"]

arr3.map(function(item,index){

return item;

}

。。。。第五个重要知识

序列化

JSON.parse()对象字符串转化为对象(深拷贝)

JSON.stringify()对象转化为字符串

var o={name:"jiaji",age:20}

console.log(typeof JSON.stringify(o))//的结果是string

console.log(typeof o);//的结果是object

2

var o={name:"jiali",age:30}

var o2=JSON.stringify(o);

console.log(type JSON.parse(o2));//object

。。。。深拷贝(双胞胎)和浅拷贝(引用和影子)的区别

数组 slice() concat()返回新的数组

var arr4=["a","b",“c",”d"];

//arr4.slice(1,2);//不包含最后一个["b"]

//arr4.slice(1,3);//["b","c"]

//arr4.slice(0)//["a","b","c","d"];

//var arrCopy=arr4.slice(0);

var arrCopy=arr4.concat(”x","y");//合并 ["a","b","c","d","x","y"]

arrCopy[2]="abc";

arrCopy;//["a","b","abc","d"];

猜你喜欢

转载自www.cnblogs.com/christinejia/p/9122601.html