본문 바로가기

개발_JavaScript

(4)
JavaScript에서의 this 란? this는 '함수가 호출되었을 때 그 함수가 속해 있던 객체의 참조' 라고 볼 수 있다. var list = { name: 'Lee', sayHello: ()=>{ console.log("Hello! " + this.name); } } 이때 list.sayHello() 를 실행하면 Hello! Lee 가 콘솔에 출력됨 이유를 뜯어보면, this.name에서 함수 sayHello()가 호출되었을 때 sayHello가 속해있던 객체는 list객체다. 따라서 정의에 따라 this는 이 list객체를 참조하기 때문에, this.name 은 list.name의 값인 Lee를 참조한다. this 가 함수가 호출 되었을 때 그 함수가 속해있는 객체를 가리킴을 더 명확히 확인하기 위해, 아래 예를 추가로 들 수 있다...
JavsScript에서의 객체 참조 아래와 같이 Const 로 x 객체 선언 후, 이 객체 x 를 let y 에 할당할 수 있음 let y 라는 변수는 이 때 x 의 주소를 가리키는 참조 변수가 됨 따라서 x 객체의 property a 값을 변경한다면, y 역시 x 객체를 참조하는 변수므로, y.a 역시 3이 된다.
JavaScript 에서의 호출 Stack(Call Stack) 먼저 Call Stack이란 무엇인가? Script상에서 (프로그래밍 언어가 쓰여있는) 함수(Function)이 차례대로 호출될 때 이 함수들을 받아서 작동하는 메커니즘임. 마치 Stack처럼 LIFO구조로 함수들이 Stack 자료구조상에 쌓여서 제일 마지막에 Call 된 Function이 실행되도록 작동한다. function first(){ second(); console.log("First"); } function second(){ third(); console.log("Second"); } function third(){ console.log("Third"); } first(); 즉, 위와 같은 코드를 Console 에 입력하면 아래와 같이 Third -> Second -> First 순으로 출력된..
Why Node.js? [Back-End 로 node.js 를 사용하는 이유] 위와 같이 두 가지 표시 부분이 php 와 Node.js가 차이나는 곳이다. Node.js는 Async 방식으로 비동기방식으로 Request 와 Return 이 시행된다. 즉, 웹서버에 Task Request가 순서대로 A , B, C 가 온다면, node.js 는 A 요청에 대해 Return 을 수행하지 않더라도 우선 B요청을 동시에 받고, A 요청은 A 요청대로 처리를 해준다. (이를 non-blocking io라 한다. 먼저 요청한 request가 아직 처리되지 않았더라도, 후속 request를 실시간으로 받고, 이에 대한 콜백함수가 이벤트 뤂을 돌아서 Call Stack에 쌓이기 전에 있는 Queue를 거쳐 FIFO로 Queue에서 빠져나가 ..