理解 JS 的同步操作与异步操作

本文通过举例解释了JavaScript的同步和异步操作的区别,指出同步操作按顺序执行,而异步操作在所有同步代码执行完毕后执行。JavaScript的单线程特性导致其需要依赖异步处理以提高效率,浏览器的多线程环境使得异步代码得以在后台执行。文章通过一个生动的例子帮助读者理解这一概念。
摘要由CSDN通过智能技术生成

理解 JS 的同步操作与异步操作

测试一下你的思维方式+数学计算,看下题 : 小明早上要做:穿衣:3分种 , 洗漱:4分钟 , 吃饭、煮饭、锻炼各10分钟。问小明做完这些事最少要几分钟?

​ 我们大部分人的答案是最少 30 分钟。为防止有人怼我,我特意从网上搜索到金质解答:( 可能是程序猿做了,写这个都想着各种bug 😁 )

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传在这里插入图片描述

​ ok , 接下来进入我们今天的"主菜", 理解 JS 的同步操作与异步操作 。来吧,上才艺。

首先,你在看这篇文章时,需要 清楚地明白 这两个操作的意思,

  1. js 的同步操作并不是 👉 所有的任务一起同时操作之意;
  2. 同理, js 的异步操作也并不是 👉 一个任务执行完另一个任务开始执行

否则,可能下面的内容会把你绕晕。

下列选项中,全部是的同步操作是( );含有异步操作是( );它们的打印结果是什么呢?
A、
    console.log(1);
    console.log(2);
	console.log(3);
B、
    console.log(1);
    setTimeout(function(){
    console.log(2);
    },0)
    console.log(3)

​ 聪慧的你,是不是一看就知道了答案了呢。没错,选项A的同步操作,执行结果是: 1 > 2 > 3 。选项B的异步操作执行结果是: 1 > 3 > 2

​ 肯定会有人为什么是这样的结果呢?我知道身为大牛的你们知道,也有更好的解释。但如果我再在候场区坐着,就彻底坐实了“冷板凳”了。所以,小弟我只能厚着脸皮,主动给自己加戏。接下来,让小弟我来抛砖引玉,坐等各位大牛的留言。

​ 选项A我就不用给大家讲解了,估计大家也不想看。那我直接从选项B开始。在选项B中,setTimeout 是异步代码,那什么是异步代码呢?先不要急着回答,还记得我在这篇文章开头讲的“首先”吗?想必大家经过思索,已经有了正确答案:

同时间执行的代码就是异步代码。但请注意一点,异步代码是在所有的同步代码执行完后才执行的。

​ 学习过 JavaScript 小哥哥小姐姐肯定知道 JavaScript 的一大特性:单线程 。换个说法就是,她同一时间只能做一件事情。

​ 任何软件都需要

评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值