1:vue中computed和watch的区别以及method
computed
计算属性,依赖其他属性,当其他属性改变的时候下一次获取computed值时也会改变,computed的值会有缓存,并且computed里面的名称不能与data里面的对象重复,只能是同步的,必须要有return;是多个值变化引起的一个值的变化,是多对一,默认第一次加载的时候就开始监听。
watch
类似于数据改变后的回调
如果想深度监听的话,后面加一个deep:true
如果想监听完立马运行的话,后面加一个immediate:true。名称必须和data里面的一样,可以用于监听,没有return;一对多,监听一个值,一个值的变化引起多个值的变化。
method
在使用 method 的时候,是这样使用的{{fn{xx}}},渲染的时候如果没有发生变化,这个也是会被执行的。而 computed 是有缓存的,如果没有变化就不用再去执行了
2:call和apply的区别
他们的区别在于接收参数的方式不同:
call()
:第一个参数是this值没有变化,变化的是其余参数都直接传递给函数。在使用call()
方法时,传递给函数的参数必须逐个列举出来。
apply()
:传递给函数的是参数数组
相同点:都是改变this指向
3:setTimeout问题
<script>
setTimeout(()=>{
console.log("s")
},1000)
setTimeout(()=>{
console.log("ss")
},100)
</script>
先打打印ss,再打印s.谁先执行完谁就先输出