JS和Vue整理2021/9/1

**

JS**

1. JS判断数组还是对象类型?

  • typeOf
  • indexOf
  • Object.prototype.toString

2.深拷贝和浅拷贝?
浅拷贝:

  • 以赋值形式拷贝引用对象,指向同一个地址,修改时原对象也会受影响。
  • 赋值表达式 = Object.assign 展开运算符 (…)
    深拷贝
    完全拷贝了一个新的对象,修改时原对象不会受影响。
    1.JSON.parse(JSON.stringify(obj**)) //使用了JSON转字符串,递归进行逐一赋值。
    2.递归实现深拷贝
  • 声明一个函数 (参数obj);
  • 定义一个结果对象为copy;
  • 判断如果是obj基本数据类型(number, string,null,undefined,NaN), 直接将obj return出去;
  • 如果对象是数组,则定义结果数组, = obj instanceof Array;
  • 遍历对象的key, 判断如果key 是对象的自由属性,就递归调用深拷贝方法。
//声明一个函数 (参数obj);
function clone(obj){
	let copy ={} //定义一个结果对象为copy;
	//判断如果是obj基本数据类型(number, string,null,undefined,NaN), 直接将obj return出去;
	if(typeof obj !== 'object'  ||  obj ===null){ // typeof null 是个 'object'
		return obj
	}
	//如果对象是数组,则定义结果数组,
	if(obj.constructor===Array){ = obj  instanceof   Array;
		copy = []
	}
	//遍历对象的key 
	for(let key in obj){
		//判断如果key 是对象的自由属性
		if(obj.hasOwnProperty(key)){
		   //就递归调用深拷贝方法。
			copy[key] = clone(obj[key])
		}
	}
	return copy
}

3.事件循环机制?

setTimeout(function(){
	console.log(1)   //事件表
},0)
console.log(2)      //主线程

原理:

  • 事件循环机制的同步和异步,setTimeout是异步,所以先执行同步 2 ,在执行异步 1。
  • 当同步进入到主线程执行完了 2 ,去任务队列查看异步任务 1 ,有就推到主进程中。
  • 任务队列- 弹出个任务,放栈中,一直循环 - 同步进主线程,异步进时间表。
    宏任务与微任务?
    宏任务(异步):
  • 当前调用栈中的代码
    微任务(同步)
  • 当前任务执行结束后 立即执行的任务。

.async 和 await

  • async - 声明一个异步函数,
  • await - 代表什么时候使用它

JS数据类型
11111

Vue

4.Vue生命周期
写一个子组件,挂到父组件上引用,会先更新子组件还是父组件?

  • 子组件,因为父组件已经渲染完成了。
  • 在beforeMounte,还没有渲染数据到
    上,组件是空的。
  • 在mounted,才会在
    上添加东西。
    销毁时先销毁子组件还是父组件?
  • 子组件
    在created中修改data,无法修改,因为还没有¥el

5.Vue的data为什么是一个函数,而不是一个对象?

  • 组件复用时所有组件实例会 共享data,如果data是对象的话,就会造成一个组件 修改
    data后会影响到其它所有组件,所以需要将data写成函数,每次用到就调用一次函数获得新的数据。
  • 当使用new Vue()的方式时候,无论将data设置为对象还是函数都可以,因为new
    Vue()的方式是生成了一个根组件,该组件不会被复用,就不存在共享data的情况了。
    6.双向绑定和单项绑定
  • v-model 用于表单数据双向绑定
  • v-bind 绑定一个value属性
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Bella-520

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值