Language15 [모던 자바스크립트 Deep Dive][11] 원시 값과 객체의 비교 원시 값변경 불가능한 값원시 값 : 변경 불가능한 값 (read only)따라서 원시 값을 할당한 변수에 새로운 원시 값을 재할당하면 새로운 메모리 공간을 확보하여 재할당한 원시 값을 저장한 후, 변수는 새롭게 재할당한 원시 값을 가리킨다.변수가 참조하던 메모리 공간의 주소가 바뀐다.이것을 불변성 이라고 한다. 문자열과 불변성 원시 값을 저장하려면 먼저 확보해야 하는 메모리 공간의 크기를 결정해야 한다. 이 때 자바스크립트의 문자열은 다른 원시 값과 비교할 때 독특한 특징이 있다.숫자 값은 1도, 1000000도 동일한 8바이트가 필요하지만문자열(String 객체)의 경우 몇 개의 문자로 이루어졌느냐에 따라 필요한 메모리 공간의 크기가 결정된다.var str = 'string';// 문자열은 유사 배열.. 2024. 5. 21. [모던 자바스크립트 Deep Dive][10] 객체 리터럴 객체란?원시 값을 제외한 나머지 값(함수, 배열, 정규 표현식)등은 모두 객체다.원시 값은 변경 불가능한 값이지만 객체는 변경 가능한 값이다.객체는 0개 이상의 프로퍼티로 구성된 집합이며, 프로퍼티는 키와 값으로 구성된다.함수도 프로퍼티 값으로 사용할 수 있다. 프로퍼티 값이 함수일 경우 메서드라 부른다. - 프로퍼티의 역할 : 객체의 상태를 나타내는 값 (data) - 메서드의 역할 : 프로퍼티를 참조하고 조작할 수 있는 동작 (behavior) 객체 리터럴에 의한 객체 생성JS는 프로토타입 기반 객체지향 언어로서 다양한 객체 생성 방법을 지원한다.- 객체 리터럴- Object 생성자 함수- 생성자 함수- Object.create 메서드- 클래스(ES6) 가장 일반적인 방법은 객체 리터럴을 사용하.. 2024. 5. 17. [모던 자바스크립트 Deep Dive][09] 타입 변환과 단축 평가 타입 변환이란?명시적 타입 변환(= 타입 캐스팅) : 개발자가 의도적으로 값의 타입을 변환하는 것var x = 10;// 명시적 타입 변환// 숫자를 문자열로 타입 캐스팅한다.var str = x.toString();console.log(typeof str, str); // string 10// x 변수의 값이 변경된 것은 아니다.console.log(typeof x, x); // number 10 암묵적 타입 변환(= 타입 강제 변환) : 개발자의 의도와 상관없이 자바스크립트 엔진에 의해 암묵적으로 타입이 자동 변환되는 것var x = 10;// 암묵적 타입 변환// 문자열 연결 연산자는 숫자 타입 x의 값을 바탕으로 새로운 문자열을 생성한다.var str = x + '';console.log(type.. 2024. 5. 7. [모던 자바스크립트 Deep Dive][08] 제어문 제어문은 조건에 따라 코드 블록을 실행(조건문)하거나 반복 실행(반복문)할 때 사용한다. 블록문블록문은 0개 이상의 문을 중괄호로 묶은 것으로, 코드 블록 또는 블록이라고 부르기도 한다.자바스크립트는 블록문을 하나의 실행 단위로 취급한다.블록문의 끝에는 세미콜론을 붙이지 않는다. 조건문조건문은 주어진 조건식의 평과 결과에 따라 코드 블록의 실행을 결정한다.조건식은 불리언 값으로 평가될 수 있는 표현식이다.if else 문과 switch 문으로 두 가지 조건문을 제공한다. if else 문if else 문은 주어진 조건식의 평가 결과, 즉 논리적 참 또는 거짓에 따라 실행할 코드 블록을 결정한다.조건식의 평가 결과가 true 일 경우 if문의 코드 블록이 실행되고, false일 경우 else 문의 코드 .. 2024. 5. 3. 이전 1 2 3 4 다음