1.作用域
var test = 'hello';
(function test(){
test = 'word'
console.log(test)
})()
2.惰性函数
惰性函数(Lazy Function): 惰性函数表示函数执行的分支只会在函数第一次调用的时候执行,在第一次调用过程中,该函数会被覆盖为另一个按照合适方式执行的函数,这样任何对原函数的调用就不用再经过执行的分支了。
惰性函数的本质就是函数重写,所谓惰性载入,指函数执行的分支只会发生一次。那什么时函数重写呢?由于一个函数可以返回另一个函数,因此可以用新的函数在覆盖旧的函数。
3.this指向
var length = 1
function fun(){
console.log(this.length)
}
var arr = [fn,2,3]
arr[0]()
var f1 = arr[0]
f1()
4.数组解构
var obj = {x:1,y:2}
var [x,y] = obj
//此时报错 怎么样让它正确执行
obj[Symbol.iterator] = function*(){
yield this.x;
yield this.y;
}
5.pina与vuex区别
配置参数pinia只有三个或四个(persist持久存储配置),vuex多了mutation \ modules,action支持异步和同步
pinia中单个文件即模块。 使用时toStoreRefs解构
6.useMemo使用场景
排除同级组件渲染时方法会一并执行,当大量数据计算时,仅想依赖改变时才执行并返回结果
7.useCallback和memo
useCallback和memo经常同时使用,用来记忆和缓存函数和组件以避免重复不必要的渲染,场景是父组件重新渲染,子组件依赖没有改变,不需要重新渲染时使用。