11장 원시값과 객체의 비교

Jun Hyoung Park·2022년 6월 21일
0

원시값

  • 변경 불가능한 값
    • 한번 생성된 원시값은 읽기전용 값으로 변경이 불가능
    • 값 변경 방식
      • 불변성
        • 새로운 메모리에 값을 저장하고 이 주소값을 식별자에 할당
	// a -> undefined 주소값 할당 
 	// a -> 30의 주소값 할당 
	// a -> 40의 주소값 할당 
	var a = 30;
	a= 40;
  • 문자열과 불변성
    • 1개의 문자는 2바이트의 메모리 공간을 갖음
      • 문자의 갯수가 늘어날 수록 크기가 늘어남
    • 문자열 타입 -> 원시타입
    • 유사배열객체
      • 배열처럼 인덱스로 프로퍼티 값에 접근할 수 있고 length 프로퍼티를 갖음
      • 하지만 문자열 타입은 원시타입이므로 값을 직접적으로 변경할 수 없다
    	var s = "string";
    		s = "Hello";
    		console.log(s[0]); // H
    		s[0] = 'a'; //  변경되지않음
    		console.log(s) // Hello
  • 값에 의한 전달
	// s는 값의 표현식으로 인식 0
    // 0은 새로운 메모리에 저장
    // 이를 a에 할당 
	var s = 0 ;
	var a = s ; 

객체

  • 변경 가능한 값
    • 참조 타입의 값
    • 식별자는 참조값을 값으로 갖는다 이를 참조하여 값에 직접적으로 접근할 수 있다
      • 참조값: 생성된 객체가 저장된 메모리 공간의 주소
      • 이를 변수가 객체를 참조하고 있다 말한다
	var a = {
    	age:30	
    };
	a -> {age:30}의 주소값을 갖음 
  • 참조에의한 전달
    • 여러개의 식별자가 하나의 객체를 공유
    • 참조하고 있는 주소값을
	var a = {....};
	var b = a;
	// 이때 서로 다른 메모리에 따로 주소값을 갖기 때문에 값에 의한 전달과 같다 
	a-> {...}의 주소값
    b-> {...}의 주소값
    
    
profile
프론트엔드 지망생

0개의 댓글