对象的解构(解开结构):
方法1:取出存到变量中
例:var username=user.username
方法2:解构式 var/let {需要取的key,key1,key2...} = 对象
例:var {username,password}=user
方法3:遍历方法,定义一个对象,把遍历的对象的key取出赋值到新对象中
对象的比较:
1、对象存在堆空间,基本数据类型存在栈空间,基本数据类型的字面量存在常量池
2、每一个对象在堆空间中都有一个地址,对象名=地址
3、字面量和对象的比较:
==:比较值
4、当对象和对象之间作比较时,只比较地址
NaN:
1、用==、===比较永远不会相等
2、比较方法:
方法1:Object.is(数据1,数据2)比较数据1和数据2是否相等,和===类似,区别在于可以比较NaN和+0 -0(区分正负0)
方法2:is NaN(数据): 判断传入的数据是否是NaN
值传递和地址传递:
1、值传递:
发生在基本数据类型之间,接受方修改数据不影响传递方
2、地址传递:
发生在对象之间,传递方传递的是地址,接收方和传递方指向同一个对象,接收方改变了,传递方也相应的改变