section

函数与对象

对象是键值对的集合,key-value,对象有两种
写法,即正常模式与严格模式,严格模式就是json写法,所有的键名全部加上引号,最后一个键值对不加逗号,严格写法可以处理特殊的键名 ,也可以直接作为json文件,不会报错,对象的键值对为一个对象属性,分为静态属性(值为普通值)+ 动态属性(值为函数)
可以用in判断对象是否存在某种属性。

对象与json 字符串的相互转换,使用JSON.stringify()方法,这个方法会过滤掉对象中的方法。可以接受三个参数。另一个方法是JSON.parse()方法,可以将字符串转换为对象。

对象的增删查改,添加属性可以直接obj.name="",
也可以通过下标的形式添加,obj[“hobby”]=“test”。删除属性:deelete.
查询:obj.name,也可以通过下标 查询,obj[name],

对象的遍历,for-in,
for(let key in obj){
console.log(obj[key])
};for-in也可以遍历数组,一般用for循环。
Object.keys(),Object.values()用于获取 对象的键数组和值数组。分别返回一个数组。

关于引用类型,基本类型(值类型):
Undefined、Null、String、Number、Boolean。引用类型(引用地址)
object、Array…
注意:引用类型核心在于地址,引用类型为值类型时,变量不会互相影响。为引用地址时,变量互相影响。symbol类型用于解决团队协作中的类名冲突问题。

对象的合并用Object.assign()方法,接受目标对象和原对象,1.目标对象可为空,可不为空。(目标对象不为空时,合并后其值=合并的值+本身的值)
对于同名属性,后面的属性值会覆盖掉前面的属性值。

浅拷贝与深拷贝
分为值类型与引用类型
值类型改变时,不会引起相应变量的改变,引用类型改变时,相应的变量也会随着改变。我们可以通过for-in赋值的方式和object.assign合并的方式实现浅拷贝。

深拷贝可以通过for-in循环加递归的方式实现,通过三目运算符判断类型。
还可以通过json方法转换,先用JSON.stringify方法把对象转换为字符串,
在用JSON.parse()方法把字符串转为对象。

对象的原型链
即各个数据类型对象上都有一个prototype属性,表示为他的原型。然后这些类型的实例都可以继承此原型上的属性和方法。给一个类的原型链添加方法或者属性,我们实例化的对象会继承原型链上的方法和属性。一般我们会new一个对象来表示对象的实例,当然也可以重新定义。

this指向
谁调用方法,this就指向谁。
属性事件的this,在标签内调用事件函数,this指向所调用。
点击事件中的this指向所使用点击事件。
构造函数中,this指向实例化对象,即我们new的一个对象。
原型链中的this,谁调用this所在函数,this就指向谁。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值