ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 1강.
    NODE/후발대수업 2023. 7. 11. 15:50

     

    원시 타입 : 단일한 값을 담을 수 있는 타입 (숫자, 문자열, boolean, null, undefined)

    변수선언시 변수에 값이 담기며, 다른 변수에 대입시 값(value)에 의한 복사가 일어난다.

    const num = 2
    const str = "자바스크립트"
    const isFemail = true
    const type = null
    
    const str2 = str
    
    
    Ex)
    let myScore = 80
    let yourScore = myScore
    myScore = 100
    
    console.log(myScore)  => 100
    console.log(yourScore) => 80

     

    객체 타입 : 연관된 데이터를 담을 수 있는 타입 (object, array, function)

    변수 선언시 변수에는 메모리의 주소가 저장되고, 다른 변수에 대입 시 주소(reference)에 의한 복사가 일어난다.

    얕은복사(Shallow copy)문제는 이같은 이유 때문에 발생한다.

    const obj = {a: 1, b: 2}
    const arr = [1, 2, 3, 4, 5, 6]
    const func = () => {
      console.log('function call')
    }
    
    const arr2 = arr
    
    Ex)
    let order = [1, 2, 3, 4, 5]
    let anotherOrder = order
    anotherOrder[0] = 5
    
    console.log(order)        => [5, 2, 3, 4, 5]
    console.log(anotherOrder) =>  [5, 2, 3, 4, 5]

     

     

    코드영역: 실행 프로그램 코드가 저장되는 영역, 즉 컴퓨터가 이해할 수 있는 바이너리 코드가 저장되는 영역. CPU가 참조한다.

     

    데이터 영역: 프로그램의 전역변수, 정전변수가 저장되는 공간. 프로그램 시작시 할당되고, 종료시 해제된다.

    전역변수를 많이 사용하면 편하지만, 메모리가 부족하다는 단점이 있다.

     

    힙(Heap)영역: 사용자(프로그래머)에 의해 관리되는 영역. 즉 프로그래머가 할당, 해제하는 메모리 공간. 런타임 시 크기가 결정되며, 객체타입 (클래스, 객체, 배열) 등이 이에 해당한다.

     

    스택 영역: 프로그램이 자동으로 사용하는 임시 메모리 영역. LIFO(Last In First Out)의 특징을 가진다. 함수 호출이 완료되면 할당된 영역이 해제된다.

     


    함수 선언식

    function sumNumber(a, b) {
    	return a + b
    }
    
    function getMovieData(searchWord) {
      .....
    }
    
    호이스팅의 영향을 받아 함수 선언부가 스코프의 시작점으로 끌어올려진다.
    
    func()            // console.log 출력 됨
    
    function func() {
    	console.log('func function call!!!!')
    }

     

     

    함수 표현식

    const multiplyNumber = (a, b) => {
    	return a * b
    }
    
    const squareNum = function(num) {
    	return num * num
    }
    
    호이스팅의 영향을 받지 않아서 함수 선언 전에 함수 호출을 할 수 없음.
    
    func()   // 에러 발생 (ReferenceError: Cannot access 'func' before initialization)
    
    const func = () => {
    	console.log('func function call!!!!')
    }

    댓글

Designed by Tistory.