전체 글
-
10 객체 리터럴모던 자바스크립트 딥 다이브 독학 2023. 10. 7. 13:22
객체란? 변경 가능한 값 var person { name: 'Kim', //프로퍼티 age: 25 //프로퍼티 //프로퍼티 키: 프로퍼티 값 } 프로퍼티 값이 함수일 경우, 일반 함수와 구별하기 위해 메서드라 부른다. 프로퍼티: 객체의 상태를 나타내는 값(data) 메서드: 프로퍼티(상태 데이터)를 참조하고 조작할 수 있는 동작(behavior) 프로퍼티와 메서드로 구성된 집합체다. 객체 리터럴에 의한 객체 생성 자바스크립트는 프로토타입 기반 객체지향 언어로서 클래스 기반 객체지향 언어와는 다르게 다양한 객체 생성 방법을 지원한다. 객체 리터럴, Object 생성자 함수, 생성자 함수, Object.create 메서드, 클래스(ES6) 객체 리터럴은 중괄호 {} 내에 0개 이상의 프로퍼티를 정의한다. 객..
-
09 타입 변환, 단축 평가모던 자바스크립트 딥 다이브 독학 2023. 10. 6. 11:07
타입 변환 개발자가 의도적으로 값의 타입을 변환하는 것 명시적 타입 변환, 타입 캐스팅 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; var str = x + ''; console.log(typeof str, str); // string 10 // x 변수의 값이 변경된 것은 아니다. console.log(typeof x, x); // number 10 명시..
-
08 제어문모던 자바스크립트 딥 다이브 독학 2023. 10. 5. 11:30
블록문 0개 이상의 문을 중괄호로 묶은 것으로, 블록 또는 코드 블록이라고 부른다. 단독으로 사용할 수도 있으나 일반적으로 제어문이나 함수를 정의할때 사용한다. 자체 종결성에 의해 세미콜론을 붙이지 않는다. 조건문 조건식(불리언 값으로 평가될 수 있는 표현식)의 평가 결과에 따라 블록문의 실행을 결정한다. if 문, if … else 문, if … else if … else 문 코드 블록 내의 문이 하나뿐이라면 중괄호를 생략할 수 있다. if (num > 0) kind = '양수'; 대부분의 if .. else 문은 삼항 조건 연산자로 바꿔 쓸 수 있다. 하지만 표현식이 아닌 문이기 때문에 삼항 조건 연산자 표현식처럼 값으로 사용할 수 없다.(변수에 할당할 수 없다) switch문 switch문의 표현식..
-
07 연산자모던 자바스크립트 딥 다이브 독학 2023. 10. 4. 11:42
산술 연산자 산술 연산이 불가능한 경우, NaN을 반환 이항 산술 연산자 *, +, -, /, % 단항 산술 연산자 ++, -- ++와 —는 피연산자의 값을 변경하는 부수효과가 존재한다. +, - +와 -는 숫자 타입이 아닌 피연산자에 사용하면 숫자 타입으로 변환하여 반환한다. 문자열 연결 연산자 +연산자는 피연산자 중 하나 이상이 문자열인 경우 문자열 연결 연산자로 동작한다. 암묵적 타입 변환, 타입 강제 변환 할당 연산자 =, +=, -=, *=, /=, %= 할당 연산자는 우항에 있는 피연산자의 평가 결과를 좌항에 있는 변수에 할당한다. 좌항의 변수에 값을 할당하므로 값이 변하는 부수 효과가 존재한다. 할당문은 값으로 평가되는 표현식인 문으로서 할당된 값으로 평가된다. var x; //할당문은 표현..
-
06 데이터 타입모던 자바스크립트 딥 다이브 독학 2023. 10. 3. 09:34
06_데이터 타입 원시 타입 숫자, 문자열, 불리언, undefined, null, 심볼 객체 타입 객체, 배열, 함수 숫자 타입 모든 수를 실수로 처리한다. 하나의 숫자 타입만 존재한다. 배정밀도 64비트 부동소수점 형식을 따른다. 정수, 실수, 2진수, 8진수, 16진수 리터럴은 모두 메모리에 배정밀도 64비트 부동소수점 형식의 2진수로 저장된다. 10 / 0 → 양의 무한대(Infinity) 10 / -0 → 음의 무한대(-Infinity) 1 * ‘String’ → NaN(Not a Number, 산술 연산 불가) 문자열 타입 일반적인 표기법은 작음 따옴표(’’)를 사용한다. (’’), (””), (``) 키워드나 식별자 같은 토큰과 구분하기 위해서 문자열을 따옴표로 감싼다. 변경 불가능한 값이다..
-
05 표현식과 문모던 자바스크립트 딥 다이브 독학 2023. 10. 2. 19:50
05 표현식과 문 개념을 이해한다는 것은 용어를 정확히 이해하고 남에게 설명할 수 있어야 하는 것! 값 값은 식(표현식)이 평가되어 생성된 결과 리터럴 사람이 이해할 수 있는 문자 또는 약속된 기호를 사용해 값을 생성하는 표기법 표현식 표현식은 값으로 평가될 수 있는 문(statement)이다. 표현식이 평가되면 새로운 값을 생성하거나 기존 값을 참조한다. 10 ‘hello’ sum person.name arr[1] 10 + 20 sum = 10 sum !== 10 square() person.getName() 표현식과 표현식이 평가된 값은 동등한 관계, 동치다. 1 + 2 = 3 에서 표현식 1 + 2는 평가되어 값 3을 생성하므로 표현식 1+2와 값 3은 동치다. 따라서 표현식은 값처럼 사용할 수 있..
-
04 Variable모던 자바스크립트 딥 다이브 독학 2023. 10. 1. 12:07
변수란 무엇인가? 왜 필요한가? 메모리는 데이터를 저장할 수 있는 메모리 셀(1바이트)의 집합체 컴퓨터는 메모리 셀의 크기(1바이트) 단위로 데이터를 저장하거나 읽어 들인다. 각 셀은 고유한 메모리 주소를 갖는다. 메모리 주소는 메모리 공간의 위치를 나타내며, 0부터 메모리의 크기만큼 정수로 표현된다. (예를 들어, 4GB 메모리는 0부터 4294967295까지의 메모리 주소를 가진다) 메모리에 저장되는 모든 값은 2진수로 저장된다. 메모리 주소를 통해 값에 직접 접근하는 것은 치명적 오류를 발생시킬 가능성이 높다. 따라서 자바스크립트는 개발자의 직접적인 메모리 제어를 허용하지 않는다. 변수는 하나의 값을 저장하기 위해 확보한 메모리 공간 자체 또는 그 메모리 공간을 식별하기 위해 붙인 이름을 말한다. ..