section

    xiaoxiao2025-04-14  39

    函数与对象

    对象是键值对的集合,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就指向谁。

    最新回复(0)