首页IT科技js异步解决方案(JS面试之console的异步性怎么理解详解)

js异步解决方案(JS面试之console的异步性怎么理解详解)

时间2025-05-03 15:06:14分类IT科技浏览2798
导读:面试题目(字节 : console的异步性怎么理解?...

面试题目(字节):

console的异步性怎么理解?

答案解析:

console我一直以为是同步执行的           ,直到在一本书上看到                ,才了解到console本身有异步的特性           。虽然在平常开发中经常使用console      ,但是真的没有意识到它的异步性                 。

下面就看下异步的实例

基础类型

该类型是我们开发中经常使用的      ,正是这种打印结果                ,让我们认为console是同步的     。其实这种case也是异步的           ,因为执行到console时      ,拍摄了快照                 ,记录了当时的变量值           ,当代码执行完返回到事件队列时,直接打印了前面记录的快照造成的           。

let foo = bar; console.log(foo); foo = test;

引用类型

引用类型                 ,可以帮我们很好的验证console的异步性                 。看下图中的打印结果                 ,如果是同步的话,打印结果应该时{}           ,但是却是修改后的值{foo: bar}     。

主要是因为                 ,obj是引用类型      ,执行到console时           ,只是存储了对象的引用                ,对于对象内部的值未做记录      。当代码执行完后      ,obj内部的值已经被修改                 。返回事件队列后      ,打印出的结果实际是修改后的值           。

let obj = {}; console.log(obj); obj.foo = bar;

结论

以上示例                ,都是在浏览器中的表现           ,也就是浏览器中console实际是异步快照      ,node中的console是另一回事                 ,它是严格同步的           ,因此同样的代码打印结果是{}      。

浏览器之所以这样,是因为                 ,在许多程序中                 ,I/O被认为是低速的阻塞环节                 。在浏览器中,console.log会被异步处理以提高性能           。

下面再看两道题目加深下理解

第一道

a = [1, 2, 3]; console.log(a, a.pop());

[1, 2], 3

第二道

这道题目很有特点           ,打印结果                 ,展开前后值是不一样的。

person = { name: "张三", age: 18, }; console.log(person); person.name = "李四"; console.log(person);

当console.log输出内容为对象      ,指向的是对象的地址           ,当点开对象进行查看时                ,才会去访问相应地址获取内容                 。所以点开对象后      ,会重新访问对象地址进行查询      ,因此之前的张三                ,变成了李四

以上就是JS面试之console的异步性怎么理解详解的详细内容           ,更多关于JS面试console异步性的资料请关注本站其它相关文章!

声明:本站所有文章      ,如无特殊说明或标注                 ,均为本站原创发布                 。任何个人或组织           ,在未征得本站同意时,禁止复制           、盗用                 、采集     、发布本站内容到任何网站           、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益                 ,可联系我们进行处理           。

创心域SEO版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!

展开全文READ MORE
findx7(finder.exe进程是什么文件 finder进程查询) microsoft进程无响应(msoffice.exe是什么进程 有什么作用 msoffice进程查询)