[모던 자바스크립트 Deep Dive] 9장. 타입 변환과 단축 평가2 (단축 평가)
·
웹 프로그래밍/JavaScript | TypeScript
9.4. 단축 평가 9.4.1. 논리 연산자를 사용한 단축 평가 논리합(||) 또는 논리곱(&&) 연산자 표현식의 평가 결과는 불리언 값이 아닐 수도 있다. 논리합(||) 또는 논리곱(&&) 연산자 표현식은 언제나 2개의 피연산자 중 어느 한쪽으로 평가된다. -7.5. 논리연산자 파트- 논리곱 연산자 'Cat' && 'Dog' //'Dog' 논리곱 연산자는 두 개의 피연산자가 모두 true로 평가될 때 true를 반환한다. 또한 논리곱 연산자의 평가 진행 방향은 왼쪽에서 오른쪽이다. 위 예제의 경우 첫번재 피연산자 'Cat'은 Truthy 값이므로 true로 평가된다. 따라서 최종 평가 결과를 내리기 위해서는 두 번째 피연산자까지 평가해 보아야 한다. (=두 번째 피연산자가 위 예제의 평가 결과를 결정한..
[모던 자바스크립트 Deep Dive] 9장. 타입 변환과 단축 평가1 (타입 변환)
·
웹 프로그래밍/JavaScript | TypeScript
9.1. 타입 변환이란? 개발자의 의도대로 값의 타입을 변환하는 것을 명시적 타입 변환 또는 타입 캐스팅이라고 한다. // 명시적 타입 변환 // 숫자를 문자열로 타입 캐스팅한다. var str = x.toString(); console.log(typeof str, str); //string 10 // x 변수의 값이 변경된 것은 아니다. console.log(typeof x, x);//number 10 반면 개발자의 의도와는 상관없이 표현식을 평가하는 도중에 자바스립트 엔진에 의해 암묵적으로 타입이 변환되기도 하는데, 이를 암묵적 타입 변환 또는 타입 강제 변환이라 한다. 암묵적 타입 변환은 기존 변수 값을 재할당하여 변경하지 않으며, 새로운 타입의 값을 만들어 단 한 번 사용하고 버린다. // 암묵적..
[모던 자바스크립트 Deep Dive] 8장. 제어문
·
웹 프로그래밍/JavaScript | TypeScript
제어문 제어문은 조건에 따라 코드 블록을 실행(조건문)하거나 반복 실행(반복문)할 때 사용한다. 제어문을 사용하면 코드의 실행 흐름을 인위적으로 제어할 수 있다. 그러나 코드의 실행 순서 변경 시 코드의 흐름을 직관적으로 이해하는 데 방해가 되고 가독성을 해칠 수도 있다. 가독성이 좋지 않은 코드는 오류를 발생시키는 원인이 된다. 👉 forEach, map, filter, reduce와 같은 고차함수는 제어문의 사용을 억제해 복잡성을 해결할 수 있다. 8.1. 블록문 블록문 0개 이상의 문을 중괄호로 묶은 것으로, 코드 블록 또는 블록이라고 부르기도 한다. js는 블록문을 하나의 실행 단위로 취급한다. 8.2. 조건문 8.2.2. switch문 if ... else문은 논리적 참, 거짓으로 실행할 코드 ..
[모던 자바스크립트 Deep Dive] 7장. 연산자
·
웹 프로그래밍/JavaScript | TypeScript
7.1. 산술 연산자 산술 연산이 불가능한 경우, NaN을 반환한다. 7.1.2 단항 산술 연산자 숫자가 아닌 피연산자에 + 단항 연산자를 사용하면 피연산자를 숫자 타입으로 변환하여 반환한다. 이때 피연산자를 변경하는 것은 아니고 숫자 타입으로 변환한 값을 생성해 반환한다. 따라서 부수효과는 존재하지 않는다 (=다른 코드에 영향을 주지 않는다) . var x = "1"; console.log(+x); //1 console.log(typeof +x); //number console.log(x); //"1" var x = false; console.log(+x); //0 console.log(typeof +x); //number var x = "Hello"; console.log(+x); //NaN cons..
[모던 자바스크립트 Deep Dive] 6장. 데이터 타입
·
웹 프로그래밍/JavaScript | TypeScript
자바스크립트 데이터 타입 7가지 원시타입 숫자 타입 문자열 타입 불리언 타입 undefined 타입: var 키워드로 선언된 변수에 암묵적으로 할당되는 값 null 타입: 값이 없다는 것을 의도적으로 명시할 때 사용하는 값 심벌 타입: ES6에서 추가된 7번째 타입 객체 타입: 객체, 함수, 배열 등 6.1. 숫자타입 C언어나 자바와 달리 자바스크립트는 하나의 숫자 타입만 존재한다. 숫자 타입의 값은 64비트 부동소수점 형식을 따르며, 모든 수를 실수로 처리한다. 👉 정수끼리 나눠도 실수값이 나올 수 있다. 자바스크립트는 2진수, 8진수, 16진수를 표현하기 위한 데이터 타입을 제공하지 않기 때문에 이들 값을 참조할 시 모두 10진수로 해석된다. 추가적으로 세 가지 특별한 값도 표현가능하다. Infini..
[모던 자바스크립트 Deep Dive] 5장. 표현식과 문
·
웹 프로그래밍/JavaScript | TypeScript
5.1. 값 👾 값 식(표현식)이 평가되어 생성된 결과. 평가: 식을 해석해 값을 생성하거나 참조하는 것 모든 값은 데이터 타입을 가지며 메모리에 2진수(비트)의 나열로 저장된다. 🐱‍🏍 변수: 하나의 값을 저장하기 위해 확보한 메모리 공간 자체 또는 메모리 공간을 식별하기 위해 붙인 이름 → 변수에 할당되는 것은 값이다. 5.2. 리터럴 리터럴: 사람이 이해할 수 있는 문자(아라비아 숫자, 알파벳, 한글 등) 또는 약속된 기호('', "", [], {}, // 등)를 사용해 값을 생성하는 표기법 5.3. 표현식 표현식 값으로 평가될 수 있는 문(statement). 표현식이 평가되면 새로운 값을 생성하거나 기존 값을 참조한다. 5.2.의 리터럴은 값으로 평가되므로, 리터럴도 표현식이라고 할 수 있다. ..
리액트 공식문서 읽기 - 주요개념(Lifecycle)
·
웹 프로그래밍/JavaScript | TypeScript
Lifecycle const root = ReactDOM.createRoot( document.getElementById('root') ); function tick() { const element = ( Hello, world! It is {new Date().toLocaleTimeString()}. ); root.render(element); } setInterval(tick, 1000); 이전 섹션(엘리먼트 렌더링)에서 다루었던 시계 코드는 렌더링 된 출력값을 변경하기 위해 `root.render()`를 호출한다. 위 코드를 재사용 및 캡슐화 하면 아래와 같다. const root = ReactDOM.createRoot(document.getElementById("root")); function C..
[땅콩코딩] 타입스크립트 강좌 내용정리(함수의 타이핑, 선택적 매개 변수와 기본 매개변수 / 클래스와 오브젝트 )
·
웹 프로그래밍/JavaScript | TypeScript
보호되어 있는 글입니다.
[땅콩코딩] 타입스크립트 강좌 내용정리(열거형과 리터럴 타입)
·
웹 프로그래밍/JavaScript | TypeScript
보호되어 있는 글입니다.