728x90
728x90
암시적 형변환
javascript에서 연산자를 사용할 때 자동으로 수행되는 형변환
피연산자의 타입에 따라 결과가 다를 수 있음
주로 숫자와 문자열간 논리 연산자 사용 시 발생
1. 숫자와 문자 간의 암시적 형변환
var num = 42; // 숫자 타입 변수
var str = "10"; // 문자열 타입 변수
var result = num + str;
console.log(result); // "4210" (문자열로 형변환 후 연결)
숫자 42 + 문자열 "10"이 더해진다.
자바스크립트는 숫자와 문자열을 더할 때 숫자를 문자열로 암시적 변환하여 두 문자열을 연결한다
따라서 result 변수의 값은 "4210"이 된다
2. 논리 연산자를 사용할 때의 암시적 형변환
var num = 10; // 숫자 타입 변수
var result1 = num || 0;
console.log(result1); // 10 (참 값인 첫 번째 피연산자 반환)
var result2 = "" && num;
console.log(result2); // "" (거짓 값인 첫 번째 피연산자 반환)
||연산자 : 첫 번째 피연산자가 참이면 해당 값을 반환하고, 거짓이면 두 번째 피연산자를 반환
&&연산자 : 첫번째 피연산자가 거짓이면 해당 값을 반환하고, 참이면 두번째 피연산자 반환
Result1 변수의 값은 10, result2변수의 값은 "" (빈 문자열)
3. 불리언 변환
var value = "Hello"; // 문자열 타입 변수
if (value) {
console.log("Value is truthy"); // 실행됨
} else {
console.log("Value is falsy");
}
변수 value에는 문자열이 할당되어 있음
if문에서 value를 조건으로 사용하면 javascript는 value를 불리언으로 암시적 변환
문자열은 비어있지 않음- 불리언으로 변환하면 true
그래서 조건문은 참이 되고 truthy가 출력
명시적 형변환
개발자가 일부러 형변환시킴
1. 문자열 변환
String() 함수 사용
var num = 42; // 숫자 타입 변수
var str = String(num); // 숫자를 문자열로 변환
console.log(str); // "42" (문자열로 변환된 값)
toString()메서드 사용
var bool = true; // 불리언 타입 변수
var str = bool.toString(); // 불리언을 문자열로 변환
console.log(str); // "true" (문자열로 변환된 값)
연결 연산자(+) 사용:
var num = 10; // 숫자 타입 변수
var str = num + ""; // 빈 문자열과의 연결을 통해 문자열로 변환
console.log(str); // "10" (문자열로 변환된 값)
2. 숫자 변환
Number() 함수 사용
var str = "42"; // 문자열 타입 변수
var num = Number(str); // 문자열을 숫자로 변환
console.log(num); // 42 (숫자로 변환된 값)
parseInt() 함수 사용
var str = "123.45"; // 문자열 타입 변수
var num = parseInt(str); // 정수로 변환
console.log(num); // 123 (숫자로 변환된 값)
parseFloat() 함수 사용
var str = "3.14"; // 문자열 타입 변수
var num = parseFloat(str); // 부동 소수점 수로 변환
console.log(num); // 3.14 (숫자로 변환된 값)
300x250
'2023 공부한것들' 카테고리의 다른 글
[node.js] 숫자 야구 게임 만들기 : 부연설명 많음 (0) | 2023.06.16 |
---|---|
[node.js] 자바스크립트의 연산자 8종 (0) | 2023.06.13 |
[node.js] js 언어의 특징| 객체지향프로그래밍/객체생성/동적타이핑/함수형프로그래밍 (0) | 2023.06.13 |
[node.js] javascript의 역사 (0) | 2023.06.13 |
런타임이란? (런타임 시점) (0) | 2023.06.13 |