형 변환
- NaN : Not a Number
- NaN은 다른 모든 값과 비교 했을 때에도 같지 않고, 다른 NaN과도 같지 않다.
let string = "ryzen";
let num = 9;
let bool = true;
// 숫자형으로 형 변환
console.log(Number(string)); // NaN
console.log(Number(bool)); // 1
// 문자열로 형 변환
console.log(String(num)) // 9
console.log(String(bool)) // true
// 불린형으로 형 변환
console.log(Boolean(string)) // true
console.log(Boolean(num)) // true
자동 형 변환
+
연산 시 자동 형 변환
+
연산은 문자열을 연결하는 기능이 강함- 문자열 + 문자열을 제외한 데이터 타입 ⇒ 문자열로 형 변환 후
+
연산 - 문자열을 제외한 데이터 타입 + 문자열을 제외한 데이터 타입 ⇒ 숫자형으로 형 변환 후
+
연산 NaN
과+
연산을 하면NaN
이 나옴
let string = "ryzen";
let num = 9;
let bool = true;
console.log(string + num); // ryzen + 9 => ryzen9
console.log(string + bool); // ryzen + true => ryzentrue
console.log(num + bool); // 9 + 1 => 10
let string = "ryzen";
let num = 9;
let bool = true;
console.log("NaN과 + 연산");
console.log(NaN + string); // NaN + ryzen => NaNryzen
console.log(NaN + num); // NaN + 9 => NaN
console.log(NaN + bool); // NaN + 1 => NaN
let string = "ryzen";
let num = 9;
let bool = true;
console.log("undefined와 + 연산");
console.log(undefined + string); // undefined + ryzen => undefinedryzen
console.log(undefined + num); // NaN + 9 => NaN
console.log(undefined + bool); // NaN + 1 => NaN
let string = "ryzen";
let num = 9;
let bool = true;
console.log("null과 + 연산");
console.log(null + string); // null + ryzen => nullryzen
console.log(null + num); // 0 + 9 => 9
console.log(null + bool); // 0 + 1 => 1
-
*
/
%
**
연산 시 자동 형 변환
- 연산 되는 두 값을 모두 숫자형으로 변환한 후 연산
NaN
과-
*
/
%
**
연산을 하면NaN
이 나옴
-
연산 시 자동 형 변환
// - 연산
let string = "ryzen";
let num = 9;
let bool = true;
console.log(string - num); // NaN - 9 => NaN
console.log(string - bool); // NaN - 1 => NaN
console.log(num - bool); // 9 - 1 => 8
let string = "ryzen";
let num = 9;
let bool = true;
console.log("NaN과 - 연산");
console.log(NaN - string); // NaN - NaN => NaN
console.log(NaN - num); // NaN - 9 => NaN
console.log(NaN - bool); // NaN - 1 => NaN
let string = "ryzen";
let num = 9;
let bool = true;
console.log("undefined와 - 연산");
console.log(undefined - string); // NaN - NaN => NaN
console.log(undefined - num); // NaN - 9 => NaN
console.log(undefined - bool); // NaN - 1 => NaN
let string = "ryzen";
let num = 9;
let bool = true;
console.log("null과 - 연산");
console.log(null - string); // 0 - NaN => NaN
console.log(null - num); // 0 - 9 => -9
console.log(null - bool); // 0 - 1 => -1
*
연산 시 자동 형 변환
// * 연산
let string = "ryzen";
let num = 9;
let bool = true;
console.log(string * num); // NaN * 9 => NaN
console.log(string * bool); // NaN * 1 => NaN
console.log(num * bool); // 9 * 1 => 9
let string = "ryzen";
let num = 9;
let bool = true;
console.log("NaN과 * 연산");
console.log(NaN * string); // NaN * NaN => NaN
console.log(NaN * num); // NaN * 9 => NaN
console.log(NaN * bool); // NaN * 1 => NaN
let string = "ryzen";
let num = 9;
let bool = true;
console.log("undefined와 * 연산");
console.log(undefined * string); // NaN * NaN => NaN
console.log(undefined * num); // NaN * 9 => NaN
console.log(undefined * bool); // NaN * 1 => NaN
let string = "ryzen";
let num = 9;
let bool = true;
console.log("null과 * 연산");
console.log(null * string); // 0 * NaN => NaN
console.log(null * num); // 0 * 9 => 0
console.log(null * bool); // 0 * 1 => 0
/
연산 시 자동 형 변환
// / 연산
let string = "ryzen";
let num = 9;
let bool = true;
console.log(string / num); // NaN / 9 => NaN
console.log(string / bool); // NaN / 1 => NaN
console.log(num / bool); // 9 / 1 => 9
let string = "ryzen";
let num = 9;
let bool = true;
console.log("NaN과 / 연산");
console.log(NaN / string); // NaN / NaN => NaN
console.log(NaN / num); // NaN / 9 => NaN
console.log(NaN / bool); // NaN / 1 => NaN
let string = "ryzen";
let num = 9;
let bool = true;
console.log("undefined와 / 연산");
console.log(undefined / string); // NaN / NaN => NaN
console.log(undefined / num); // NaN / 9 => NaN
console.log(undefined / bool); // NaN / 1 => NaN
let string = "ryzen";
let num = 9;
let bool = true;
console.log("null과 / 연산");
console.log(null / string); // 0 / NaN => NaN
console.log(null / num); // 0 / 9 => 0
console.log(null / bool); // 0 / 1 => 0
%
연산 시 자동 형 변환
// % 연산
let string = "ryzen";
let num = 9;
let bool = true;
console.log(string % num); // NaN % 9 => NaN
console.log(string % bool); // NaN % 1 => NaN
console.log(num % bool); // 9 % 1 => 0
let string = "ryzen";
let num = 9;
let bool = true;
console.log("NaN과 % 연산");
console.log(NaN % string); // NaN % NaN => NaN
console.log(NaN % num); // NaN % 9 => NaN
console.log(NaN % bool); // NaN % 1 => NaN
let string = "ryzen";
let num = 9;
let bool = true;
console.log("undefined와 % 연산");
console.log(undefined % string); // NaN % NaN => NaN
console.log(undefined % num); // NaN % 9 => NaN
console.log(undefined % bool); // NaN % 1 => NaN
let string = "ryzen";
let num = 9;
let bool = true;
console.log("null과 % 연산");
console.log(null % string); // 0 % NaN => NaN
console.log(null % num); // 0 % 9 => 0
console.log(null % bool); // 0 % 1 => 0
**
연산 시 자동 형 변환
// % 연산
let string = "ryzen";
let num = 9;
let bool = true;
console.log(string ** num); // NaN ** 9 => NaN
console.log(string ** bool); // NaN ** 1 => NaN
console.log(num ** bool); // 9 ** 1 => 9
let string = "ryzen";
let num = 9;
let bool = true;
console.log("NaN과 ** 연산");
console.log(NaN ** string); // NaN ** NaN => NaN
console.log(NaN ** num); // NaN ** 9 => NaN
console.log(NaN ** bool); // NaN ** 1 => NaN
let string = "ryzen";
let num = 9;
let bool = true;
console.log("undefined와 ** 연산");
console.log(undefined ** string); // NaN ** NaN => NaN
console.log(undefined ** num); // NaN ** 9 => NaN
console.log(undefined ** bool); // NaN ** 1 => NaN
let string = "ryzen";
let num = 9;
let bool = true;
console.log("null과 ** 연산");
console.log(null ** string); // 0 ** NaN => NaN
console.log(null ** num); // 0 ** 9 => 0
console.log(null ** bool); // 0 ** 1 => 0
비교 연산 시 자동 형 변환
관계 비교 연산 시 자동 형 변환
<
<=
>
>=
연산 시 자동 형 변환- 특별한 경우를 제외하면 두 값 모두 숫자형으로 변환 후 연산
console.log(1 < "2") // 1 < 2 => true
console.log(2 <= true) // 2 <= 1 => false
console.log("3" > false) // 3 > 0 => true
console.log("four" >= 1) // NaN >= 1 => false
같음 비교 연산 시 자동 형 변환
===
!==
==
!=
연산 시 자동 형 변환- **일치 비교(
===
!==
)**는 형 변환이 일어나지 않음 - **동등 비교(
==
!=
)**는 숫자형으로 형 변환이 일어남
// 일치 비교 (값과 타입까지 비교)
console.log(1 === 1) // 1 === 1 => true
console.log(1 === "1") // 1 === "1" => false
console.log(1 === true) // 1 === true => false
console.log(true === "1") // true === "1" => false
// 동등 비교 (값만 비교)
console.log(1 == "1"); // 1 == 1 => true
console.log(1 == true); // 1 == 1 => true
console.log(true == "1"); // 1 == 1 => true
console.log("true" == 1); // NaN == 1 => false
'Javascript' 카테고리의 다른 글
[Javascript] 객체 (0) | 2022.11.04 |
---|---|
[Javascript] 피보나치 수열 - 알고리즘 (0) | 2022.11.03 |
[Javascript] 다양한 함수 선언 방법 (0) | 2022.11.02 |
[Javascript] 함수 (0) | 2022.11.01 |
[Javascript] 변수와 상수 (0) | 2022.10.31 |