문자열 -> 숫자
요소의 내용 또는 값을 얻어오면 기본적으로는 문자열(string)로 인식되어 덧셈을 하려고 하면 "더하기"가 아닌 "이어쓰기"가 된다.
* 변환 방법
1. parseInt(문자열)
: "정수" -> 정수 ex) "123" -> 123
"실수" -> 정수 ex) "3.14" -> 3 (소수점이 버려짐)
2. parseFloat(문자열)
: "정수" -> 정수 ex) "123" -> 123
"실수" -> 실수 ex) "3.14" -> 3.14
3. number(문자열)
: "정수" -> 정수 ex) "123" -> 123
"실수" -> 실수 ex) "3.14" -> 3.14
* 가장 많이 사용(직관적임)
console.log("1. parseInt")
console.log("parseInt('123') -> " + parseInt("123") + " / " + typeof(parseInt("123")))
console.log("parseInt('3.14') -> " + parseInt("3.14") + " / " + typeof(parseInt("3.14")))
console.log("--------")
console.log("2. parseFloat")
console.log("parseFloat('123') -> " + parseFloat("123") + " / " + typeof(parseFloat("123")))
console.log("parseFloat('3.14') -> " + parseFloat("3.14") + " / " + typeof(parseFloat("3.14")))
console.log("--------")
console.log("3. Number")
console.log("Number('123') -> " + Number("123") + " / " + typeof(Number("123")))
console.log("Number('3.14') -> " + Number("3.14") + " / " + typeof(Number("3.14")))
비교 연산자
1. 동등 비교 연산자(==, !=)
: 값만 같으면 true(자료형 상관X)
ex) '1'(string) == 1(number) == true(boolean, 1)
2. 동일 비교 연산자(===, !==)
: 값과 자료형이 모두 같아야 ture
문자열(string) 내장 함수
1. string.IndexOf("찾고싶은 문자열")
: string 내에서 "찾고싶은 문자열"의 시작 인덱스를 반환, 없으면 -1 반환
2. string.lastIndexOf("찾고싶은 문자열")
: 뒤에서부터 검색하여 string 내에서 "찾고싶은 문자열"의 시작 인덱스를 반환, 없으면 -1 반환
const str = "가나다가나다"
console.log(str.indexOf("다")) // 결과: 2
console.log(str.lastIndexOf("다")) // 결과: 5
3. string.substring(시작인덱스, (마지막인덱스))
: 문자열에서 시작 인덱스부터 끝까지 잘라서 반환
(마지막인덱스) 시작 인덱스부터 마지막 인덱스 전까지 잘라서 반환
const str = "012345"
console.log(str.substring(2)) // 결과: 2345
console.log(str.substring(2,5)) // 결과: 234
4. string.split("구분자")
: 문자열을 "구분자"를 기준으로 나누어서 배열로 반환, 구분자를 넣지 않으면 문자열이 모두 한 글자씩 나누어져 배열로 반환.
const str = "사과*포도*수박"
console.log(str.split("*"))
// 결과: [ '사과', '포도', '수박' ]
console.log(str.split(""))
// 결과: ['사', '과', '*', '포', '도', '*', '수', '박']
숫자 관련 내장 객체/함수
* 숫자(number) 타입 리터럴 표기법
: 123(정수) / 9,321(실수) / infinity(무한) / NaN(Not a Number)
내장 객체 Math의 내장함수
- Math.ceil(값) : 올림
- Math.floor(값) : 내림
- Math.trunc(값) : 버림
- Math.round(값) : 반올림
* 숫자.toFixed(자릿수): 숫자를 지정된 자릿수까지 반올림하여 표현
const num = 3.542
console.log(Math.ceil(num)) // 결과: 4
console.log(Math.floor(num)) // 결과: 3
console.log(Math.trunc(num)) // 결과: 3
console.log(Math.round(num)) // 결과: 4
console.log(num.toFixed(2)) // 결과: 3.54
- Math.random() : 0 이상 1 미만의 난수 발생(소수점 가능)
document.getElementById("btn1").addEventListener("click", function(){
// 1. Math.random()만 사용하면 0이상 1미만의 소수점이 나온다.
console.log(Math.random()) // 결과: 0.3386852835927152
// 2. 원하는 숫자를 만들기 위해서는 원하는 범위까지의 숫자를 곱해준다.
console.log(Math.random() * 256)
// 3. 소수점을 버린다.
console.log(Math.floor(Math.random() * 256))
// 응용: rgb 색상을 랜덤으로 만들어 보기
const r = Math.floor(Math.random() * 256)
const g = Math.floor(Math.random() * 256)
const b = Math.floor(Math.random() * 256)
document.querySelector("body").style.backgroundColor = `rgb(${r},${g},${b})`
})
- isNaN(값): 값이 숫자가 아니면 true, 숫자면 false
console.log(isNaN("string")) // 결과: true
console.log(isNaN(123)) // 결과: false
'JS > JavaScript' 카테고리의 다른 글
9. 윈도우 내장 객체 (0) | 2023.03.02 |
---|---|
8. 배열 (0) | 2023.03.01 |
6. 정규표현식 (0) | 2023.02.28 |
5. 이벤트 (0) | 2023.02.25 |
4. 변수와 자료형 (0) | 2023.02.25 |