자바스크립트

·JS
ES6(ES2015) 이후 var는 더 이상 사용되지 않고 let과 const가 사용됩니다. 스코프 var x = 'moon'; function ex(){ var x = 'local'; x = 'change'; } ex(); alert(x); ex함수를 호출하면은 alert를 실행 하였을때 무엇이 호출 될까? alert(x); // moon이 호출된다. 함수안에 정의된 변수는 자신을 감싸고 있는 함수 바깥으로 빠져 나갈 수가 없다. 만약에 var을 뺀다면 어떻게 될까 var x = 'moon'; function ex(){ x = 'local'; x = 'change'; } ex(); alert(x); function 내에 변수가 존재하지 않는다면 x가 함수 바깥으로 나가서 var x를 찾게 된다. 그로 ..
·JS
블로킹이라고 정확하게 명시되어 있는 것은 존재하지 않는다고 한다. 느리게 동작하는 코드를 우리는 블로킹이라고 부른다. alert, console.log등 이 자체는 느리지 않는다. 하지만 while문의 루프 안에서 수십억번이 실행된다면 느릴것이다. 네트워크 요청이나 이미지 프로세싱은 느리다. (*이미지 스프라이트 기법이 사용되는 이유) 느린 동작이 스택에 남아있는 것을 보통 블로킹이라고 말한다. 자바스크립트는 싱글 스레드 프로그래밍 언어이다. 싱글 스레드는 네트워크 요청을 하고는 마냥 끝날때 까지 기다린다. 그것 말고는 방법이 없기 때문이다. 문제는 무엇이냐? 바로 웹 브라우저에서 코드가 실행되고 있기 때문이다. 동기적으로 실행되는 네트워크 요청이 콜 스택을 블로킹하여 브라우저는 다른 일들을 할 수가 없..
king_hd
'자바스크립트' 태그의 글 목록 (2 Page)