컴퓨터는 잘못이 없다..

[JavaScript]함수 호출과 return값 분석해보기 ★★★★ 본문

공부/JavaScript

[JavaScript]함수 호출과 return값 분석해보기 ★★★★

도토리까꿍v 2020. 11. 10. 16:55
Contents 접기

★아래 개념을 확실히 해야 java, kotlin을 배울 때 편하당★

 

[Stack과 Heap]

[각 데이터 타입]

실제 array type data는 object type으로 인식하기 때문에 Heap에 저장된다.

즉, array type data는 heap에 저장된다!

 

[데이터 참조는 어떻게?]

 

[함수 호출과 return 예약어]

1.return 예약어

└함수를 호출하면 결과값을 return 해준다.

 

└return이 없거나 return 옆자리가 휑하면? undefined를 return해준다./또한 실행코드를 다 수행하고 함수가 종료된다.

 

└함수를 호출해 함수가 실행되다가 return을 만나면 함수가 종료된다. 종료된 후 함수를 호출 한 곳으로 돌아간다. 

 

 

2. 함수 호출

함수 호출은 함수명() 으로 호출하며 함수를 호출하면 그 함수는 return값 그 자체가 된다.라고 생각하기!!!!★★★★★

ex) return 10 인 b()함수를 호출하면 b() 는 10(number type)이 된다.

 

ex) data = [{객체1},{객체2},{객체3}]이고

return data인 getData() 함수를 호출하면 getData()는

[{객체1},{객체2},{객체3}](array type)이 된다.

근데 array type은 [] 로 데이터에 접근하므로 getData()[index] 이고 이 데이터는 object type이므로 (.)dot으로 접근해서

최종적으로 getData()[index]. ~  이런 모양이 된다!

 

 

 

 

 

[전체적으로 확인해보기]

아래와 같이 여러 data type이 섞여있어도 접근할 줄 알아야함!

 

[제대로 이해했는 지 check 해보기]

 

Q1)

function test(){};

let a = test();

 

이때 a에 들어있는 값? → undefined type의 undefined (return 이 없거나 return 뒤가 비어있으면 defined를 return한다.)

 

Q2)

function test(){   return {};   };

let a = test();

 

이때 a에 들어있는 값? → object type 참조값(힙에 저장된 object타입 데이터의 위치)

 

Q3) 

function test(){  return {num:1}  };

let a = test;

let b = test();

let c = test1().num;

let d = b.num;

 

각 변수에 들어있는 값?

a → function타입 참조값(힙에 저장된 function타입 데이터의 위치) 

b → object타입 참조값(힙에 저장된 object 타입 데이터의 위치)

c → number타입 정수1

d → number 타입 정수1

 

Q4)

function test(arg){ return arg+1; };

let a = test(10);

 

이때 a에 들어있는 값? → number 타입 정수 11

 

Q5)

function test(){ return [10,20,30,40,50] };

let a = test();

let b = tes1()[2];

let c = test1().length;

 

각 변수에 들어있는 값?

a→ array타입의 참조값(힙에 저장된 array 타입의 데이터의 위치)

b→ number type의 정수 30

c→ number type의 정수 5

 

Q6)

function test(){

    let arr = [10, 20, 30];

    arr.push(40);

    return arr;

}

let a = test();

let b = test().length;

 

각 변수에 들어있는 값?

a → array 타입의 참조값(힙에 저장된 array 타입의 데이터의 위치)

b → number type 정수4

 

 

 

 

Comments