JavaScript ·
클로저(Closure) (2)
클로저(Closure) 는 Javascript 에서 꾀나 기본적인 개념이다. Scope 와도 많이 관련되어 있고 코드를 짜는데 있어서 변수의 어휘적 범위(Lexical Scoping) 를 잘 고려해야 실수 없는 소스를 짤 수 있을것 같다.
글 22개
JavaScript ·
클로저(Closure) 는 Javascript 에서 꾀나 기본적인 개념이다. Scope 와도 많이 관련되어 있고 코드를 짜는데 있어서 변수의 어휘적 범위(Lexical Scoping) 를 잘 고려해야 실수 없는 소스를 짤 수 있을것 같다.
JavaScript ·
이번에는 Javascript 의 타입 var, let, const 에 대하여 포스팅을 진행한다. 중간중간 Scope에 대한 기술도 들어갈 예정이다. 스코프(Scope) 는 식별자의 유효범위를 뜻하며, 선언된 위치에 따라 유효 범위가 달라진다.
JavaScript ·
Javscript 는 생각보다 복잡하게 동작한다. Javscript Engine 은 기본적으로 단일 스레드(Single Thread) 방식으로 동작한다. 하지만, 이러한 상황에서 그럼 Browser에서는 굉장히 많은 작업들이 동시에 일어나는 것은 어떻게 진행되는 것일까?
JavaScript ·
클로저(Closure) 는 Javascript 에서 꾀나 기본적인 개념이다. Scope 와도 많이 관련되어 있고 코드를 짜는데 있어서 변수의 어휘적 범위(Lexical Scoping) 를 잘 고려해야 실수 없는 소스를 짤 수 있을것 같다.
JavaScript ·
이번 포스팅에서는 JavaScript에서 중요한 프로그래밍 기법중 하나인 throttling 과 debouncing에 대하여 개념 및 사용유형에 대해서 포스팅을 기록해본다. throttling 과 debouncing은 하나의 프로그래밍 기법이므로 개발자의 판단하에 다양한 기능에 해당 기법으로 녹아들 수 있다.
JavaScript ·
Javascript를 공부하면서 굉장히 많이 보이는게 Event관련 기능들이다. 이번에는 앞선 이벤트 버블링에 이어 Event의 전달 과정의 두번째로 이벤트 캡쳐을 기록해보고자 한다. 이벤트 캡처링이란 이벤트 버블링과는 반대로 동작한다고 이해하면 된다.
JavaScript ·
Javascript를 공부하면서 굉장히 많이 보이는게 Event관련 기능들이다. 이번에는 Event의 전달 과정의 첫번째로 이벤트 버블링을 기록해보고자 한다. 대충은 알고 있지만 모든 정리를 하면 더욱 내것이 되는 기분이라 좀 더 자세히 다뤄봐야 겠다.
JavaScript ·
실행 컨텍스트를 공부하던 중 var 와 let,const간의 차이 즉, Variable Environment와 Lexical Environmnet와의 환경 차이에 대해서 궁금증이 생겼다. var의 경우에는 Creation Phase 단계에서 초기화 및 메모리값 할당(undefined)가 일어나지만 let, const의 경우 변수…
JavaScript ·
좋은 기회로 실행컨텍스트(Execution Context) 에 대한 궁금증을 갖게 되었다. 중요한 부분은 이 실행 컨텍스트가 Javascript 에서 굉장히 중요한 역할을 하고 있다는 것이고 아직까지 깊게 공부를 해본적이 없어 이번 기회에 정확히 짚어가고 싶어서 기록을 시작해본다.
JavaScript ·
예를 들어 아래와 같은 HTML의 XML 데이터가 있다고 하자. Javascript 를 통해서 이 값에 접근해본다. 보통 xml 데이터를 String 으로 주고 태그의 내부 값을 조작하라는 문제가 많이 나온다. 이런경우는 아래와 같이하면 어떨까 생각해 보았다.
JavaScript ·
앞선 포스트에서 이벤트 루프 에 대하여 공부해봤다. 공부를 하다보니 Javascript Engine 에 대하여 궁금증 이 생겨 추가로 공부하여 기록한다. 자바스크립트 엔진은 각 브라우저 별로 상이하다. SpiderMonkey : 파이어 폭스
JavaScript ·
우리가 사용하는 자바스크립트 엔진은 단일 호출 스텍을 사용한다. 즉, 웹 브라우저에서 요청한 작업들을 동시에 하나만 처리할 수 있다는 개념이다. 그러나 우리는 웹 브라우저에서 여러가지 작업들이 동시에 동작하는 것, 동시성을 보장하는 것을 볼 수 있다.
JavaScript ·
비동기 처리를 위한 콜백함수의 단점을 보완하기 위해 제안됨 Promise 객체 생성 Promise 객체에서는 executor 라는 함수가 자동으로 실행되고, executor 라는 함수는 resolve 와 reject 라는 두 개의 함수를 인자로 받아서 비동기 처리 함수를 실행
JavaScript ·
Syncronous(동기) : 요청을 보낸 후, 해당 요청을 기다렸다가 응답을 받은 다음 동작을 실행하는것 즉, 순차적으로 코드가 진행된다. Asyncronous(비동기) : 요청을 보낸 후, 응답을 기다리지 않고 다음 코드를 실행한다.
JavaScript ·
javascript 변수 또는 함수 선언 시 해당 변수가 유효한 범위를 의미한다. 3가지 전역(Global) , 함수(Function), Block(블록) Scope 가 있으며 선언에 따라 유효범위가 다르기 때문에 이해가 필요함
JavaScript ·
호이스팅이란 끌어 올리다 의 뜻으로 이해하면 된다. 우리가 알고 있는 여러 언어들은 통상 일반적으로 함수 또는 변수를 선언한 후에 아래 라인에서 선언한 것들을 사용 가능 하지만 Javascript 의 경우에는 함수 또는 변수를 선언하기 전에 사용해도 에러가 나지 않는 현상을 말한다.
JavaScript ·
삭제는 Array.splice(시작Index, 삭제갯수) 마지막에 값을 넣는다. 배열의 끝에 있는 값을 리턴해주고, 해당 아이템은 배열에서 삭제 우리가 아는 자료구조의 push, pop 으로 이해해도 된다 배열의 첫번째 값을 삭제하고, 뒤에 있는 아이템을 앞으로 당긴다.
JavaScript ·
Class명 {} 로 함수와 같이 정의 가능 Class 내부에 Constructor() 를 통해 프로퍼티 및 값을 정의한다. Method 는 Class 안에 정의하면 된다. 자바와 같이 extends 를 통해 상속할 Class 선언
JavaScript ·
함수 선언을 보다 간단하게 하기 위해 고안되었다. 화살표 함수는 익명 함수이다. 따라서 호출하기 위해 변수에 대입하는 경우가 많다. 화살표 함수를 사용할 시 this 값은 상위 객체를 가르킨다. 예를 들면 아래와 같을 수 있다.
JavaScript ·
forEach 문은 배열에 접근할 때 for 반복문 대신 접근할 수 있는 내장 메서드 이다. 위 코드를 돌려보면 여기서 forEach 의 결과를 보면 a 배열의 값과 인덱스 값, 매개변수로 준 값이 차례로 호출되는 것을 볼 수 있다.
JavaScript ·
javscript 객체는 Property 와 Method(함수) 로 이루어져있고,Property 는 보통 Key, Value 로 이루어져 있다. 객체 리터럴 방식 new Object() 생성 방식 생성자 함수로 생성
JavaScript ·
NULL : 값이 없음을 나타낸다. undefined : 값이 할당되지 않았음을 나타낸다. undefined 의 경우는 타입과 값이 모두 'undefined' 로 나오지만 null 의 경우 타입이 Object 로 출력되는 것을 기억하자