面试题:问js为什么是单线程的

news/2024/7/19 14:15:13 标签: js

js为什么是单线程的

如果js是多线程的话,一个线程添加DOM一个线程删除DOM那就会产生差错,浏览器不知道应该听谁的,到底删除DOM还是添加DOM。

js是单线程语言,浏览器只分配给js一个主线程,用来执行任务(函数),但一次只能执行一个任务,这些任务形成一个任务队列排队等候执行,但前端的某些任务是非常耗时的,比如网络请求,定时器和事件监听,如果让他们和别的任务一样,都老老实实的排队等待执行的话,执行效率会非常的低,甚至导致页面的假死。所以,浏览器为这些耗时任务开辟了另外的线程,主要包括http请求线程,浏览器定时触发器,浏览器事件触发线程,这些任务是异步的。

来自:https://blog.csdn.net/weixin_49200148/article/details/107165334


http://www.niftyadmin.cn/n/1371463.html

相关文章

fetch的各种api

1.结构: fetch(url,{参数)}).then(...).catch(...)2.与async await一起使用 async function fetchMovies() {const response await fetch(/movies);// 等待直到请求完成console.log(response); }3.请求 JSON 数据 fetch()请求成功以后,得…

fetch常用api,fetch和axios的区别

axios 1.从浏览器中创建 XMLHttpRequest 2.客户端支持防止CSRF 3.提供了一些并发请求的接口(重要,方便了很多的操作) 4.从 node.js 创建 http 请求 5.拦截请求和响应 6.转换请求和响应数据 7.自动转换JSON数据 fetch优势 1.语法简洁…

网络优化,css优化, js优化

网络优化 减少HTTP请求,合并文件、精灵图减少DNS查询,使用缓存 当使用了CDN时,DNS 服务器根据用户 IP 地址,将域名解析成相应节点的缓存服务器IP地址,实现用户就近访问。使用 CDN 服务的网站,只需将其域名…

web常见的攻击方式

xss攻击 用户通过浏览器访问web网页,xss攻击通过各种办法在用户访问页面的时候,插入一些自己的代码或者脚本,让用户访问页面的时候,就可以执行这个脚本,攻击者通过插入的脚本的执行就会获得一些信息(比如c…

单例模式,策略模式,代理模式,迭代器模式,发布订阅模式

单例模式 1.什么是单例模式 是指在一个类只能有一个实例,即使多次实例化该类,也只返回第一次实例化后的实例对象。 2.主要解决: 一个全局使用的类频繁地创建与销毁。 3.js单例模式何时使用: 当您想控制实例数目,…

setup里面获取dom元素

注意:ref“变量” 变量ref(null)变量.value这里的变量名称要一致

深入理解vue生命周期

1.beforeCreate 组件实例被创建之初 干了什么事? 初始化vue实例,进行数据观测 能做什么? 1.执行时组件实例还未创建,通常用于插件开发中执行一些初始化任务 2.可以在这写一个Loading事件 2.created 组件实例已经完全创建 …

函数只执行第一次的执行一次 once函数

//只执行一次函数function once(fn){var ifFalse truereturn function(){if(ifFalse){ifFalse falsefn()}}}//调用function getName(){console.log(我叫吉娃娃)}getName once(getName)getName() //我叫吉娃娃getName() //不执行转自链接:https://www.nowcoder.co…