- 博客(5)
- 收藏
- 关注
原创 js事件循环机制
在执行同步代码的时候,如果遇到了异步事件,js 引擎并不会一直等待其返回结果,而是会将这个事件挂起,继续执行执行栈中的其他任务。执行完函数或方法后,不必阻塞性地等待返回值或消息,只需要向系统委托一个异步过程,那么当系统接收到返回值或消息时,系统会自动触发委托的异步过程,从而完成一个完整的流程。是一个宏任务,但是js的事件执行顺序中,宏任务队列中的代码执行优先级会低于同步任务,所以setTimeout会被加入到宏任务队列,等待同步任务执行完成,紧接着,代码会去执行。是异步的,所以在执行完。
2023-06-19 13:50:40
316
原创 普通函数和箭头函数的区别
new.target允许你检测函数或构造方法是否是通过new运算符调用的,若函数或构造方法是由new调用的,则new.target属性的值指向该函数或构造函数,否则值为undefined。普通函数调用中,new.target的值为undefined,使用new运算符调用的函数其值为函数本身,这可以用来判断一个函数是否是使用new调用的ES6中的class类创建实例时必须使用new,new.target的值则为类定义本身在类的继承中,new.target的值指向初始化类的类定义箭头函数。
2023-05-04 19:48:39
326
原创 宏任务与微任务的区别
宏任务包括:setTimeout setInterval Ajax DOM事件,宏任务是由宿主(浏览器、Node)发起的,宏任务,可以理解为每次执行栈执行的代码就是一个宏任务(包括每次从事件队列中获取一个事件回调并放到执行栈中执行).进程的切换肯定是宏任务,因为需要花费大量的资源微任务包括:Promise async/await 等…微任务是由JS引擎发起的,微任务,可以理解是在当前 task 执行结束后立即执行的任务。也就是说,在当前task任务后,下一个task之前,在渲染之前。
2023-02-18 10:18:30
3131
原创 ScrollView中嵌套ListView无法滚动问题
今天在写小demo时就发现在ScrollView里同时嵌套了ListView布局和一个轮播图之后就只有ListView在滚动而轮播不会被覆盖,就找了很多博客,发现都是因为ListView和ScrollView的滚动存在冲突,只需要禁用了ListView的滚动就可以解决,然后尝试了很多的方法后都不行,最后发现自定义ListView控件然后在XML文件中直接引用自定义ListView控件就可以了,上代码://因为ScrollView和ListView之间存在滚动冲突,需要取消ListView的滚动来使Scro
2023-02-18 09:48:35
492
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人