본문 바로가기
Back-End/Node.js

Node.js 교과서 PART2 (1)

by dailycoding777 2025. 1. 19.

호출 스택

"누가 먼저 실행될까?"

자바스크립트는 프링글스통과 같다.

먼저 쌓인게 나중에 나간다.

LIFO(Last in First Out) , 후입선출이라고 부른다.

 

anonymous는 뭐야?

anonymous는 **이름이 없는 함수(익명 함수)**를 호출할 때 호출 스택에 표시되는 기본 이름이다.

  • 브라우저나 Node.js가 코드의 시작점을 관리하기 위해 사용하는 기본 값이다.
  • 우리가 함수를 선언하면서 이름을 주지 않거나, 함수 표현식으로 함수를 만들어 사용하면 생긴다.

즉 우리가 무언가를 실행하면 가장 밑에 깔리고 프로그램이 다 실행되고 annoymous까지 끝나야 실행이 끝난 것이다.

 

 

var,conmst,let

 

var는 js의 적폐다. 적폐의 특성을 알아보자.

 

가장 큰 차이점 : 블록 스코프 (var는 함수 스코프)

 

if(true){
    var x = 3;    
}
console.log(x) // 3

if(true){
    const y = 3;
}
console.log // uncaught Refercence Error 

function a(){
    var y =3;
}
console.log(y); //에러
var는 이 스코프(중괄호)를 무시해버린다.
스코프 밖에서도 x에 접근할 수 있다.

 

그럼 var는 결계가 없냐? 있긴하다. function으로 감싸면 결계가 생긴다. 즉
 
var는 함수 스코프를 존중한다
let,const는 블록 스코프를 존중한다.

 

 

let은 여러번 선언할 수 있다. 즉 여러번 메모리주소를 바꿀 수도 있다.

const는? 한번 선언하면 메모리주소 변경이 안된다.

 

너무 어려운 개념이라 느끼면

const는  = 을 한번만 할 수 있고 let은 =을 여러번 쓸 수 있다. 고 생각해도 괜찮다.
 

템플릿 리터럴

변수랑 문자열이랑 같이 쓰기 위해 만든 것이다.
 
백틱(`)으로 감싸서 사용하면 되는데 작은따옴표랑(')은 다른 것이다. 백틱은 보통 왼쪽에 esc 밑 , 숫자 1번 왼쪽에 있다.
var result = '이 과자는' + won + '입니다'
// 이과자는1000원입니다.
// 앗 여기 띄어쓰기가 없네? 

var won = 1000;
const result = `이 과자는 ${won}입니다.`

 

 

++++ 정보

함수 호출할 때 a() 이렇게 호출하는데 백틱 두개를 사용해 호출 할 수도 있다.

a`` 이렇게 호출할 수도 있다고 있다.

a();
a`` <- 이거 taged templete literal 이라고 부름.
 

 

객체 리터럴

데이터를 키-값 쌍으로 저장하는 객체를 생성할 때 쓰는 것이다.

  • {}로 감싸고, 키와 값을 지정해준다.
const user = {
  name: "내 이름",
  age: 27,
  job: "개발자"
};

console.log(user);
// 출력: { name: '내 이름', age: 27, job: '개발자' }

 

데이터를 구조화해서 저장 할 수 있다.

 

ES6부턴 단축 속성(Shorthand Property)를 지원한다.
const name = "내 이름";
const user = { name };
console.log(user); // { name: '내 이름' }

 

  • 템플릿 리터럴은 문자열 생성용. 동적 값 넣기 편리!
  • 객체 리터럴은 데이터를 키-값 쌍으로 저장할 때 사용

 

'Back-End > Node.js' 카테고리의 다른 글

Node.js 교과서 PART1  (0) 2025.01.18
다시 시작하는 Node.js, 새로 시작하는 CS  (0) 2025.01.11
TodoList(Node.js)  (0) 2024.11.02
새로운 프로젝트 시작  (4) 2024.10.09