월루를 꿈꾸는 대학생

자바스크립트 DeepDive CH11 본문

Programing/JS

자바스크립트 DeepDive CH11

하즈시 2022. 2. 8. 21:51
728x90

원시값과 객체의 비교 

 

원시타입  

- 변경 불가능한 값 

- 변수 할당 시 메모리에 실제 값 저장 

- 다른 변수에 할당시 원시값이 복사

 

객체

- 변경 가능한 값 

- 변수에 참조값이 저장 

- 다른 변수에 복사시 참조값이 복사 -> 참조값에 의한 전달 

 

 


11.1 원시 값 

 

11.1.1 변경 불가능한 값 

 

원시타입 

- 변경 불가능한 값 

- 읽기 전용임 변경 불가 

- 메모리에 할당된 원시값은 변경 불가하나 그걸 담고 있는 변수는 변경이 가능  // 다만 상수는 변경도 불가 

- 상수는 const 키워드를 사용 

 

문자열 

- 유사 배열 객체 // length 프로퍼티 있고 인덱스로 프로퍼티 접근 가능 

- 문자열 또한 원시값이기에 변경이 불가 

 

변수 복사 

let score = 100;
let copy = score;

//score은 100이라는 변수가 할당된 메모리 참조
//copy는 score 값이 복사되어 전달됨 둘 다 같은 값이지만 다른 메모리의 100을 참조

- 두 변수의 원시값은 서로 다른 메모리 공간에 저장된 별개으 값이 되기 때문에 한쪽에서 재할당해도 다른 쪽에 영향은 없다 

 

11.2 객체 

- 프로퍼티 갯수가 전해져있지 않음

- 객체는 변경 가능한 값

- 변수는 객체를 참조하고 있다

- 재할당 ㅇ벗이 프로퍼티를 동적으로 추가 혹은 값을 수정 가능 

- 객체는 비용이 크기 때문에 변수처럼 복사해서 사용하면 효율이 좋지 않아 변경 가능한 값으로 설정되어 있음 

 

 

참조에 의한 전달 

- 얕은 복사 : 객체를 가리키는 참조값을 그대로 복사하는 참조에 의한 전달  // 값에 의한 전달 = 원시값 복사와 동일

- 여러 식별자가 하나의 객체 공유 가능 

- 서로 서로 영향을 받음 

 


12 함수

 

12.1 함수란? 

- 실행하고자 하는 과정을 문으로 구현하고 코드 블록으로 감싸서 하나의 실행 단위로 정의한 것 

 

12.2 함수 사용 이유 

- 재사용 가능 

- 함수 이름은 역할을 파악할 수 있도록 명명 

 

12.3 함수 리터럴 

-함수 : 객체타입 값 

-함수는 객체다 : 일반 객체는 호출이 불가능하지만 함수는 호출 가능 

 

12.4 함수 정의 

 

함수 선언문

- 함수 선언문은 함수 이름 생략 불가 

- 표현식이 아니라 문 !! 그래서 undifined 나옴 

- 표현식이 아닐 ㅏ문이기 때문에 변수 할당 불가 

 

함수 표현식

- 변수에 함수 할당 

- 함수 이름 생략 가능 

 

 

function 생성자 함수 

-빌트인 함수 function 생성자 함수에 매개변수 목록과 문자열 전달 

let add2 = new Function('x','y','return x+y');

 

화살표 함수 

- function 대신 화살표 => 로 함수 선언 가능 

- const add = (x,y) => x+y;

 

 

 

 

728x90

'Programing > JS' 카테고리의 다른 글

Deep dive 14장 15장  (0) 2022.02.22