-
2023- 05 - 13 형 변환 (데이터타입 변환), 연산자Today I Learned/TIL 05 2023. 6. 1. 07:20
오늘 할일
자바스크립트 1주차 강의 듣기.
개인과제 복습하기.
오늘 배운 것
1. 형변환 2.연산자
형 변환 : 형태를 바꾼다. 문자열을 숫자열로, 숫자열을 문자열로 등등.
1. 암시적 형 변환 : 개발자가 의도하지 않았고, 자동적으로 바뀌는 형 변환
2. 명시적 형 변환 : 개발자가 의도한 형 변환
암시적 형변환
(1) 문자열과 다른 데이터타입(숫자열, null, 객체, underined 등)이 더하기되면 문자열이 된다.
let result = 1+"2"; console.log(result); // 12 console.log(typeof result); // string (숫자열 + 문자열 = 문자열(string)) let result = "1" + true; console.log(result); // 1true console.log(typeof result); // string (문자열 + 불리언 = 문자열(string))
(2) 빼기, 곱하기, 나누기는 항상 숫자열로 변환된다. (문자열끼리 해도 숫자열이 된다.)
let result = 1 - "3"; console.log(result); // -2 console.log(typeof result); // number (숫자열 - 문자열 = 숫자열(number)) let result = "4" * "4"; console.log(result); // 16 console.log(typeof result); // number (문자열 * 문자열 = 숫자열(number))
명시적 형 변환
(변환시킬 타입(변환할 타입)) ->여기서 변환시킬 타입 앞글자는 대문자로 써야함. (String, Number, Boolean)
1. Boolean 형변환
boolean 값이 false로 나오는 경우
console.log(Boolean(0)); => 숫자열 0을 boolean타입으로 변환시킨다. console.log(Boolean("")); => 값이 없는 문자열("")을 boolean타입으로 변환시킨다. console.log(Boolean(null)); => null을 boolean타입으로 변환시킨다. console.log(Boolean(undefined)); => undefined을 boolean타입으로 변환시킨다. console.log(Boolean(NaN)); => NaN을 boolean타입으로 변환시킨다. // false 라는 불리언 값으로 나옴.
boolean 값이 true로 나오는 경우console.log(Boolean("false")); => 값이 있는 문자열 "false"을 boolean 타입으로 변환시킨다 console.log(Boolean()); => 빈 객체를 boolean타입을 변환시킨다. // true 라는 불리언 값으로 나옴
2. 문자열 형변환let result = String(123) console.log(result); console.log(typeof result); => 123, string let result = String(true) console.log(result); console.log(typeof result); => true, string let result = String(null) console.log(result); console.log(typeof result); => null, string let result = String(undefined) console.log(result); console.log(typeof result); => undefined, string
여기서 123, true, null, undefined는 다 문자열(string)타입으로 출력된다.
3. 숫자열 형변환
let result = Number("abc") console.log(result) console.log(typeof result) // NaN, number (result만 출력하면 NaN이지만 typeof하면 문자열"abc"가 숫자열로 변형됨) let result = Number("123") console.log(result) console.log(typeof result) //123, number
연산자
1. 더하기 연산자 (문자열 우선시)console.log(1 + 1); // 2 console.log(1 + "1"); // 11
2. 빼기 연산자 (숫자열 우선시)console.log(1 - "2"); // -1 console.log(1 - 2); // -1
3. 곱하기 연산자 (숫자열 우선시)console.log(2 * 3); // 6 console.log("2" * 3); // 6
4. 나누기 연산자 (숫자열 우선시)console.log("4" / 2); // 2 console.log(4 / 2); // 2
5. 나누기 연산자(/) vs 나머지 (나누고 나서 몫을 뺀 나머지) 연산자(%)console.log(5 / 2); // 2.5 console.log(5 % 2); // 1 (5를 2로 나누고 남은 나머지값 1)
6. 할당 연산자 (assignment) =
6-1. 등호 연산자 (=)let x = 10; // 등호 "=" 연산자가 곧 할당 연산자. console.log(x); // 10
6-2. 더하기 등호연산자 (+=)let x = 10; x += 5; console.log(x); // 15
6-3. 빼기 등호연산자 (-=)let x = 15; x -= 5; console.log(x); // 10
6-4. 곱하기 등호연산자 (*=)let a = 10; a *= 2; console.log(a); // 20
비교 연산자 (결과값의 참과 거짓에 따라 true또는 false를 반환하는 연산자)
1. 일치 연산자 (===) : 데이터타입까지 일치한 연산자 andconsole.log(2 === 2); // true console.log("2" === 2); // false
2. 불일치 연산자 (!==) : 거꾸로. 데이터타입까지 일치해야 false를 반환하는 연산자. 불일치하면 true를 반환함.console.log(2 !== 2); // false console.log("2" !== 2); // true
3. 작다 연산자 (<) , 작거나 같다 연산자 (<=)console.log(2 < 3); // true console.log(2 <= 3); // true console.log(3 <= 3); // true console.log(4 <= 3); // false
4. 논리 연산자
4-1. 논리곱 연산자 (&&) : 모두 true일 때만 true 반환. &&는 and(둘다)의 의미조건1 && 조건2 = 조건1, 조건2 둘다 만족시켜야만 true
console.log(true && true); // true console.log(true && false); // false console.log(false && true); // false console.log(false && false); // false
4-2. 논리합 연산자 (||) : 두 값중 하나라도 true인 경우 true 반환. ||는 or(또는)의 의미조건1 || 조건2 = 조건1, 조건2 중 하나라도 만족시키면 true
console.log(true || true); // true console.log(true || false); // true console.log(false || true); // true console.log(false || false); // false
4-3. 논리부정 연산자 (!) : true값을 false로 바꿈. 사용빈도가 가장 높다!console.log(!true); // false let a = true; console.log(!a); // false
5. 삼항 연산자 (활용빈도 상당히 높다) 조건에 따라 값을 선택한다.조건 ? 조건이true인 경우 : 조건이 false인 경우
let a = 10; let result = (a > 5) ? "크다" : "작다"; console.log(result); // "크다"
위에서
삼항 (항이 3개: 첫번째항 : (a > 5), 두번째항 "크다", 세번째항 "작다"
첫번째 항이 조건이고, 조건이 true이면 result값에 두번째항 "크다"를 할당, false면 result값에 세번째항 "작다"를 할당
연습문제: 3항 연산자를 이용해서 y가 10보다 작은경우 작다를, 10보다 큰경우 크다를 출력해주세요.let y = 20; let answer = (y < 10) ? "크다" : "작다"; console.log(answer); // "작다"
06. 타입 연산자 (typeof)console.log(typeof "5"); // string 문자열 타입 console.log(typeof 5); // number 숫자열 타입
'Today I Learned > TIL 05' 카테고리의 다른 글
2023 - 05 - 16 객체, 객체 메서드, 생성자함수, 문자열화, 객체병합 (중요) (0) 2023.06.01 2023 - 05 - 15 조건문, 조건부실행, 삼항연산자, 단축평가 (0) 2023.06.01 2023- 05 - 14 함수, 전역변수, 지역변수, 화살표함수 (0) 2023.06.01 2023- 05 -12 기타 데이터타입 (객체, 배열, 불리언, undefined, null) (0) 2023.06.01 2023- 05- 11 변수, 데이터타입, 숫자열문법, 문자열문법! (중요) (0) 2023.06.01