본문 바로가기
반응형

개발서적/모던 자바스크립트 Deep Dive28

원시 값과 객체의 비교 (모던 자바스크립트 Deep Dive) 11.1 원시 값 11.1.1 변경 불가능한 값 변경 불가능한 값 원시 값 자체를 변경하지 못한다는 말 원시 값을 변경 불가능하다는 말은 메모리 관점에서 접근해야 이해가 쉽다. 원시 값은 변경 불가능하기 때문에 변수에 값 재할당 시 기존 메모리 공간이 아닌 새로운 메모리 공간을 확보하여 저장하는 것이다. 변수의 값을 변경 불가능한 것은 상수이다. → 재할당 금지! 11.1.2 문자열과 불변성 문자열 타입 - 2바이트 문자 하나당 2바이트, 문자의 개수에 따라 확보하는 메모리 공간이 달라짐 숫자 타입 - 8바이트 숫자의 크기에 따라 관계없이 8바이트 사용 이외 원시 타입은 브라우저 제조사의 구현에 따라 크기가 다를 수 있다. 자바스크립트는 문자열의 형태로 데이터를 저장한다. 문자열 타입의 변수에 다른 문자.. 2024. 4. 16.
객체 리터럴 (모던 자바스크립트 Deep Dive) 10.1 객체란? 자바스크립트는 객체 기반의 프로그래밍 언어 원시 값을 제외하고는 모두 객체이다. 객체 프로퍼티의 집합 ❓ 일반 함수? 메서드? 함수는 메서드를 포함한다. 함수가 객체의 프로퍼티로 저장되면 그것은 메서드이다. → 메서드는 객체가 없으면 없는 것 함수는 객체와 관계없이 독립적이다. 메서드는 객체에 종속적이다. 메서드를 수행하려면 반드시 객체를 통해서 수행하여야 한다. 메서드 동작의 주체는 해당 객체. 자바스크립트에서의 객체? 자바스크립트 내장 객체 : Built-in Object Global, Object, String, Number, Boolean, Data, Array, Math, RegExp, Error 등 브라우저 내장 객체 : Native Object 자바스크립트 엔진이 빌드될 때.. 2024. 4. 16.
타입 변환과 단축 평가 (모던 자바스크립트 Deep Dive) 9.1 타입 변환이란? 명시적 타입 변환 / 타입 캐스팅 의도적으로 값의 타입을 변환하는 것 암묵적 타입 변환 / 타입 강제 변환 의도와 상관없이 자바스크립트 엔진에 의해 타입이 변환되는 것 원시 값은 변경 불가능하기 때문에 타입을 변환한다는 것은 기존 원시 값을 이용해 다른 타입의 새로운 원시 값을 생성한 다는 것 → 재할당 아님! 9.2 암묵적 타입 변환 자바스크립트는 암묵적 타입 변환을 통해 에러를 내야하는 상황에서 에러를 내지 않게 처리한다. ??? 9.2.1 문자열 타입으로 변환 값 뒤에 + ‘’ 을 붙이면 문자열로 변환된다… Symbol 타입은 제외 템플릿 리터럴을 사용해 문자열로 변환이 가능하다. 9.2.2 숫자 타입으로 변환 값 앞에 + 을 붙이면 숫자 타입으로 변환된다… 숫자 타입으로 변.. 2024. 4. 15.
연산자 (모던 자바스크립트 Deep Dive) 7.8 typeof 연산자 피연산자의 데이터 타입을 문자열로 반환한다. null은 반환하지 않는다. typeof null → object 반환 굉장한 버그이며 아직 수정되지 않았다 null임을 확인하려면 typeof 대신 ===을 사용하자 선언하지 않은 식별자를 typeof 연산을 하면 참조에러 대신 undefined를 반환한다 7.10 그 외의 연산자 다른 챕터에서 더 자세하게 다룰 예정인 연산자들 📎 연산자 정의 ?. 옵셔널 체이닝 연산자 ?? null 병합 연산자 delete 프로퍼티 삭제 new 생성자 함수를 호출할 때 사용하여 인스턴스를 생성 instanceof 좌변의 객체가 우변의 생성자 함수와 연결된 인스턴스인지 판별 in 프로퍼티 존재 확인 2024. 4. 15.
728x90
반응형