字面量创建
var obj={}
实例化创建对象
var obj=new Object()
以某个对象为原型创建一个新对象
var obj =Object.create()
对象中有一个名字,对应一个内容
名字就是key,内容就是value,这两个都是成对出现的
值就是属性, 属性是这个对象私有的变量值
函数就是方法,设置可执行的语句块,属于这个对象的私有函数
键值对,键时唯一的,键名不能重复,通过一个键名能快速的找到对应值
属性名直接给,这个属性名就是字符串,命名要求和变量命名要求一样
1.要以大小写字符,_下划线,$为开头
使用双引号或者单引号包起来的的属性名,没有命名规则
使用[] 设定属性名 []的两种给入方式
1.使用引号引起来的字符串和数值
2.变量名作为属性名
[]放入的变量值如果不是字符型或者Symbol类型,则会自动隐式转为字符串
var b={a:3}
var a='str'
var obj={
['s s']:333,
[b]:3
}
console.log(obj);
数值型对象
字符型对象
布尔型对象
当调用字符串方法、数值方法、布尔方法,会自动在堆中创建一个该对象类型,执行方法得到结果映射
该类型非法字符不能使用.方法
如果两个变量引用了同一个地址,那么这两个变量引用地址相同,修改属性时,另外一个也会跟着改变. 给其中一个变量设置了一个新对象时,改变了他的引用地址.
JSON.stringify() 对象转JSON字符
JSON.parse() JSON转对象
对象的遍历
1.先按照隐式转换的数值从小到大
2.再按照添加的顺序
无法遍历Symbol类型
浅复制的两种方法
1.for(var key in obj)
2.Object.assign
for(var key in obj){
obj1\[key]=obj\[key]
}
obj.a=10
console.log(obj1);
console.log(obj);
var obj2=Object.assign(obj)
console.log(obj2);
内存泄漏和垃圾回收
如果你要改变变量和对象之间的引用地址时,要先把这个变量的地址清空一下,让原来的那个对象变成垃圾,方便等一下垃圾回收,如果不把引用地址清空就会导致内存泄漏,这个对象也会一直在堆中占着位置