JavaScript day3
타입변환 | 연산자
타입변환
변수는 타입이 고정되있지 않고 변수에 다른 타입의 값을 대입하는 것이 가능하다.
자동 타입 변환
타입의 값을 기대하는 곳에 다른 타입의 닶이 오면 자동으로 타입을 변환
const a = "20"; // 문자열형
const b = "10"; // 문자열형
let result = a + b; // 2010, 문자열 연결
let result2 = a - b; // 10
let result3 = a * b; // 200
let result4 = a / b; // 2
const c = "자바스크립트";
let result5 = c - a; // NaN : 숫자로 변환할 수 없는 연산을 시도한 경우, 정의되지 않은 값이나 표현할 수 없는 값
문자열 + 문자열은 문자열 연결이 되고 그외에는 자동 타입 변환이 된다.
명시적 타입 변환
자동으로 타입변환을 지줜하지만 면시적으로 변환할 필요가 있능 때 타입변환 함수를 사용하며 강제로 타입 변환이 가능하다.
const a = "20"; // 문자열형
const b = "10"; // 문자열형
console.log(a + b); //2010
console.log(Number(a) + Number(b)); // 30
문자열 + 문자열은 결과가 문자열 연결로 나와야하지만 Number()이라는 문자열을 숫자형으로 바꿔주는 메소드를 사용하여 문자열을 숫자로 변환준다.
명시적 타입변환 메소드
종류 | 설명 |
---|---|
Number() | 문자를 숫자로 변환 |
String() | 숫자나 불린등을 문자열형으로 변환 |
Boolean() | 문자나 숫자등을 불린형으로 변환 |
Object() | 모든 자료형을 객체형으로 변환 |
parseInt() | 문자열형을 int형으로 변환 |
parseFloat() | 문자열형을 float형으로 변환 |
연산자
연산자는 사칙연산은 물론 문자열과 문자열을 연결해서 새로운 문자열을 만들고 값의 크기를 비교하는 등 여러가지 동작을 의미한다.
연산자 | 종류 |
---|---|
산술연산자 | +, -, *, /, %, **(거듭제곱) |
비교 연산자 | <, >, >=, <=, ==, ===, !=, !== |
대입 연산자 | =, +=, -=, *=, /=, %=, **= |
증감 연산자 | ++a, a++, –a, a– |
논리연산자 | &&, ||, ! |
비트연산자 | &, |, ^, «, » |
삼항 연산자 | 상수 = 조건식 ? 결과1 : 결과2 |