본문 바로가기

전체 글

(203)
얕은복사 & 깊은복사 데이터타입 원시값 String, Number, Boolean, Null, Undefined -> 자동 깊은 복사, 다른 메모리에 값 자체를 할당 참조값 Object, Symbol -> 얕은 복사, 가리키는 주소를 복사 얕은 복사 객체를 가리키는 주소를 같이쓰는것 바꾸면 같이 따라서 바뀌어 버린다 깊은 복사 spread 연산자 사용 (1 depth 까지만) Object.assign() 메소드 사용 (1 depth 까지만) 완벽한 깊은 복사 방법 재귀적으로 깊은 복사 수행 Lodash의 cloneDeep 함수 사용 (라이브러리) JSON.parse()와 JSON.Stringify() 함수 사용 JSON.stringify()는 객체를 json문자열로 변환한다. 이 과정에서 원본객체와 참조가 모두 끊어진다. J..
자바스크립트 프로토타입 Javascript 에서는 객체를 상속하기 위해 프로토타입이라는 방식을 사용한다. 이미 존재하는 생성자에게 메소드를 추가하기 위해 프로토타입 속성을 사용하는 법을 알아보자 자바스크립트는 프로토타입기반 언어라고도 불리운다 모든 객체들이 그들의 프로토타입으로 부터 메소드와 속성들을 상속받는다. 모든 객체들은 최소한 하나 이상의 다른 객체로부터 상속을 받는데, 이때 상속되는 정보를 제공하는 객체를 프로토타입이라고 한다. 동작 순서 : 프로토타입 체인 person 객체가 자체적으로 valueOf() 메소드를 가지고 있는지 체크 person의 프로토타입 객체 Person()의 생성자의 프로토타입에 valueOf() 메소드가 있는지 체크 여전히 없으므로 Person()의 생성자의 프로토타입 객체의 프로토타입 Obj..
자바스크립트의 형 변환(+ null & undefined 차이) 자바스크립트는 느슨한 타입언어, 동적 타입언어, 변수의 타입을 미리 선언할 필요가 없다. 프로그램이 처리되는 과정에서 자동으로 파악되고, 같은 변수라도 상황에 따라 타입이 바뀔 수도 있다. 자바스크립트는 컴파일 과정 없이 실행과 동시에 해석을 하는 인터프리터 언어 자바스크립트의 형변환은 2가지로 일어난다 (명시적형변환/암시적 형변환) 1. 명시적 형변환 string, number, boolean 타입으로 이루어진다 의도적으로 형태를 변형해서 사용하겠다는 것 String(123) String(NaN) Number('') //0 Number('123') //123 ParseInt('123a') //123 Boolean("") //false 2. 암시적 형변환 연산할 때 일어난다. 문자열이 하나라도 포함되면 ..