
JavaScript
分享一些有心得体会的地方。
无量寂空
两岸猿声(chengxu猿)啼不住,BUG已过万重山。
展开
-
JS同步异步宏任务微任务
【基本概念】:【大致了解宏/微 任务】:DOM事件,setTimeout(()=>{},1000); 点击按钮执行的事件和setTimeout执行的回调函数,这些都是称做任务;JS是单线程的,任务会被放到事件队列中去;队列是先进先出的,就会不断地从队列里取出事件,然后将事件在JS的主线程中依次执行,浏览器是有这个机制的;但是——这个任务队列其实有两种:宏任务队列/微任务队列;微任务的优先级是要比宏任务的优先级高的:执行宏任务之前都要看一下有没有微任务!,先清空微任务队列,才会轮到宏任务队原创 2021-12-02 20:29:22 · 348 阅读 · 0 评论 -
JS闭包(图解)
代码function foo(){ var name="foo" var age=18 function bar(){ console.log(name) console.log(age) } return bar}var fn=foo()fn()分析//第13行代码执行 , 生成AO对象。//接下来执行函数中的代码://函数执行上下文会被销毁;但是AO1对象不会被销毁。//0xb00对象不会被销毁 , 因为原创 2021-09-17 08:24:53 · 400 阅读 · 1 评论 -
高阶函数的执行过程【图解】
代码部分function foo(){ function bar(){ console.log("bar~ ~ ~") } return bar}var fn=foo();fn();【下面图解上述程序的执行流程】:【1】:1 ~ 8 行全都扫描一遍//创建GO对象;解析的时候发现foo是一个函数 , 这个时候就会立即去创建0xa00对象//GO对象创建完成之后 , 就要执行代码了。【2】:执行第7行代码//函数一旦被执行 , 就要创建原创 2021-09-17 06:33:04 · 237 阅读 · 0 评论 -
JS手写call/apply/bind/slice
callFunction.prototype.hycall = function(thisArg, ...args) { // 在这里可以去执行调用的那个函数(foo) // 问题: 得可以获取到是哪一个函数执行了hycall // 1.获取需要被执行的函数 var fn = this // 2.对thisArg转成对象类型(防止它传入的是非对象类型) thisArg = (thisArg !== null && thisArg !==原创 2021-09-13 04:44:25 · 198 阅读 · 0 评论 -
JavaScript的作用域提升
【Demo】://———最终输出 : HelloWorld【详解】:原创 2021-09-08 01:05:42 · 85 阅读 · 0 评论