> 웹 프론트엔드 > JS 튜토리얼 > 네이티브 JS 비동기 및 단일 스레드에 대한 자세한 설명

네이티브 JS 비동기 및 단일 스레드에 대한 자세한 설명

小云云
풀어 주다: 2018-03-07 14:40:50
원래의
1886명이 탐색했습니다.

비동기(동기)란 무엇인가요? 이 기사는 주로 기본 JS 비동기 및 단일 스레드에 대한 자세한 설명을 공유합니다.

//异步
console.log(100);
setTimeout(function(){
console.log(200);
},1000);
console.log(300);
//同步
console.log(100);
alert(200);
console.log(300);//同步会阻塞等待
로그인 후 복사

비동기적인 경우

--대기가 발생할 수 있는 경우

--대기 프로세스 중에는 프로그램 실행을 경고처럼 차단할 수 없습니다

--따라서 모든 "대기 상황"에는 비동기

프런트 엔드가 필요합니다 비동기 작업 사용 시나리오

예약된 작업:

setTimeout/setInterval
console.log(100);
setTimeout(function(){
console.log(200)
},1000);
console.log(300);
//同步
console.log(100);
alert(200);
console.log(300);
网络请求:ajax请求,动态<img>加载
//ajax
console.log(&#39;start&#39;);
$.get(&#39;xxx&#39;,function(){
console.log(data);
})
console.log(&#39;end&#39;);//startenddata
//img
console.log(&#39;start&#39;);
var img = document.creatElement(&#39;img&#39;);
img.onload = function(){
console.log(loaded);
}
img.src = &#39;xxxxxxxxxxxxxxxx&#39;;
console.log(&#39;end&#39;)//startendloaded
事件绑定
console.log(&#39;start&#39;);
var btn1 = document.getElementById(&#39;btn1&#39;);
btn1.addEventListener(&#39;click&#39;,function(){
console.log(&#39;clicked&#39;);
})
console.log(&#39;end&#39;)
异步和单线程
同步和异步的区别?分别举一个同步和异步的例子
同步会阻塞代码执行,而异步不会
alert是同步,setTimeout是异步
一个关于setTimeout的笔试题
console.log(1);
setTimeout(function(){
console.log(2)
},0);
console.log(3);
setTimeout(function(){
console.log(4);
},1000);
console.log(5);
//13524
로그인 후 복사

프런트 엔드에서 비동기 작업을 사용하는 시나리오는 무엇입니까?

예약된 작업: setTimeout, setInterval

ajax 요청, img loading

이벤트 바인딩

관련 권장 사항:

자세한 설명 예시 js 비동기 프로그래밍

여러 JavaScript 비동기 로딩 관련 문제

단일 스레드 JS 실행 문제에 대한 자세한 설명

위 내용은 네이티브 JS 비동기 및 단일 스레드에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿