목록JavaScript/모던자바스크립트 Deep Dive (17)
얼레벌레
자바스크립트는 객체 지향 프로그래밍언어로 원시타입을 제외한 모든 값이 객체 더보기 ✅ 원시타입 - 하나의 값만 나타냄 - 변경 불가능한 값(immutable value) ✅ 객체 - 다양한 타입의 값으로 구성된 자료구조 - 변경 가능한 값(mutable value) 객체는 0개 이상의 프로퍼티로 구성되는 프로퍼티의 집합이며, 프로퍼티는 키와 값으로 구성됨 단, 프로퍼티값이 함수인 경우 메서드(method)로 칭함 - 프로퍼티: 객체의 상태를 나타내는 값 - 메서드: 프로퍼티를 참조하고 조작할 수 있는 동작 자바스크립트에서 객체 생성하는 다양한 방법 ▪️ 객체 리터럴 ⇨ 객체 리터럴로 객체를 생성함으로써 프로퍼티를 동적으로 추가할 수도, 객체생성과 동시에 프로퍼티를 만들 수도 있는 자스의 유연함! ▪️ O..
자바스크립트의 모든 값은 데이터 타입이 존재함 → 개발자의 의도에 따른 타입 변환 가능 (명시적타입변환=타입캐스팅) → 개발자의 의도와 관계없이 자바스크립트 엔진에 의해 자동변환 (암묵적타입변환=타입강제변환) ▫️ 암묵적타입변환(implicit coercion) - 문자열, 숫자, 불리언과 같은 원시 타입 중 하나로 타입 자동변환 - 코드 문맥상 부합하도록 자바스크립트 엔진이 암묵적 자동변환 ◾️ 문자열 - 피연산자 중 문자열 타입이 아닌 피연산자를 문자열 타입으로 변환 - Symbol타입은 문자열로 자동변환 불가 (TypeError) // 숫자타입 1+'' // '1' 0+'' // '0' Infinity+'' // 'Infinity' NaN+'' // 'NaN' // Boolean false+'' /..
제어문(control flow statement) - 조건에 따라 코드 블록을 실행(조건문)할 경우 혹은 반복 실행(반복문)할 경우 사용 - 가독성을 해칠 수 있음 ⇨ forEach, map, filter, reduce등과 함께 사용 블록문 : 0개 이상의 문을 중괄호로 묶은 것 = 코드 블록 ✔️ 하나의 실행 단위로서 단독으로 사용하기 보단 제어문이나 함수 정의시 보통 사용 조건문 ✔️ 주어진 조건식의 평가 결과(Boolean)에 따라 코드 블록 실행 결정 ▪️ if-else문 - 대부분의 if-else문은 삼항 조건 연산자로 바꿔 쓸 수 있음 if (condition) { // block of code to be executed if the condition is true } else { // blo..
연산자 ✔️ 값으로 평가된 피연산자를 연산해 새로운 값을 만든다 ▪️ 산술 연산자 (arithmetic operator) - 피연산자를 대상으로 수학적 계산을 수행해 새로운 숫자값을 반환 - 산술연산 불가시 NaN (Not a Number) 반환 ▫️ 이항 산술 연산자 ⇨ +, -, *, /, % - 2개의 피연산자를 산술 연산해 숫자 값을 만듦 -> 부수효과 없음 ▫️ 단항 산술 연산자 ⇨ ++, --, +, - - 1개의 피연산자를 산술 연산해 숫자 값을 만듦 -> 부수효과 있기도 하고(++, --) 없기도 함(+, -) ❗️ 증가/감소(++/--) 연산자는 피연산자의 값을 변경하는 암묵적 할당이 이뤄진다. - ++/--가 피연산자의 앞에 위치할 경우 선증가/선감소 후할당 (++n, --n) - ++..
자바스크립트는 7개의 데이터 타입이 있음 원시 타입(primitive type) - 숫자(number), 문자열(string), 불리언(boolean), undefined, null, 심벌(symbol) 객체 타입(object/reference type) - 객체, 함수, 배열 등 ▪️ 숫자 타입 - C나 Java와 다르게, float, int, 2/8/16진수 등에 구분 없이 64비트 부동소수점(실수) 형식의 하나의 숫자 타입만 존재한다. - 세가지 특별한 값을 표현할 수 있다 ⇨ Infinity, -Infinity, NaN(not-a-number) // 숫자 타입은 모두 실수로 처리! console.log(1 === 1.0) // True // 세가지 특별한 값 console.log(1/0) // I..