반응형
5. 숫자와 문자
1) Number
✔ Number
자바스크립트엣 일반적인 숫자는 64비트 형식의 IEEE-754 표준 기반 형태로 저장되는 자료형
- 10진수 외 16, 2, 8진수 등 다양한 진수 사용
- 16진수(Hexadecimal): 0xFF
- 8진수(Octal): 0o71
- 2진수(Binary): 0b1101
- 대표 상수값
[MAX|MIN]_VALUE, [MAX|MIN]_SAFE_INTEGER, [POSITIVE|NEGATIVE]_INFINITY, NaN - 대표 메서드
- 문자열로 변환:
Number.toString()
- 특정 자리수까지 제한하여 표현:
Number.toFixed()
,Number.toPrecision()
- 타입 확인:
Number.isNaN()
,Number.isFinite()
- 문자열로 변환:
✔ 지수 / 진법
- 지수 표기법
아주 큰 숫자나 아주 작은 숫자를 표기하기 위해 지수 표기법(e)으로 0 개수 대체 가능 /* 지수 표기법 */ let billion_1 = 100000000; let billion_2 = 1e9; // 1 + 0이 9개 let us = 1e-6; // microe sec, 왼쪽으로 6번 소수점 이동, 0.000001
- 진법 표기
진법 표기를 지원하기 위해 0x(16진수), 0o(8진수), 0b(2진수)로 N 진수 표기 가능 /* N 진법 */ console.log(0xof); // 15 console.log(0o17); // 15 consoel.log(ob1111); // 15
✔ Number 상수 값
- 지수로 표기되는 양수 최대, 최소 값: Number.MAX_VALUE, Number.MIN_VALUE
- 안전하게 표기되는 최대(양수), 최소(음수) 값: Number.MAX_SAFE_INTEGER, NUMBER.MIN_SAFE_INTEGER
- 무한대 양수, 음수 값: Number.POSITIVE_INFINITY, Number.NEGATIVE_INFINITY
- 부동 소수점 산술에서 정의되지 않거나 표현할 수 없는 값으로 해석될 수 있는 숫자 데이터 유형: Number.NaN
✔ 대표 메서드
- 형 변환
Number to String:Number.toString()
,String(Number)
,Number + ""
const us = 1e-6;
console.log(us.toString()); // 0.000001
console.log(typeof us.toString()) // string
console.log(typeof String(us)); // string
console.log(typeof (us + "")); // string
- 자리 수 표현
- 소수의 자리 수 길이를 제한:
Number.toFixed(pos)
- 정수와 소수의 자리 수를 합한 길이로 제한:
Number.toPrecision(pos)
- Number 자료형 확인
- 부동 소수점 산술에서 정의되지 않거나 표현할 수 없는 값(NaN)인지 확인:
Number.isNan()
- 정상적인 유한수인지 확인:
Number.isFinite()
- 정수와 실수 형 변환
- 정수로 변환(N 진수로 명시적 변환 가능):
Number.parseInt()
- 실수로 변환:
Number.parseFloat()
2) String
✔ String
텍스트 길이에 상관없이 문자열 형태로 저장되는 자료형
- 자바스크립트에서는 글자 하나만 저장할 수 있는 char 자료형이 없음
- 자바스크립트에서 문자열은 페이지 인코딩 방식과 상관없이 항상 UTF-16을 따름
- 대표 속성(property), 메서드(method)
- 문자열 길이:
String.length
- 문자열 접근:
String.charAt(index)
,String.charCodeAt(index)
- 문자열 검색:
String.indexOf()
,String.lastIndexOf()
,String.includes()
,String.startsWith()
- 문자열 변환:
String.toUpperCase()
,String.toLowerCase()
- 문자열 치환:
String.replace()
- 문자열 추출:
String.slice()
,String.substring()
,String.subsrt()
- 문자열 분할:
String.split
- 문자열 길이:
✔ 문자 정의 및 표기
- 정의 방법
- string 정의 방법: "", '', String()
- 문자열과 변수 혼합 표현 방법: ``
- 문자 표기
- 다양한 문자 표기 방법
- Line feed
(\n)
- Carriage return
(\r)
- Backslash
(\\)
- Tab
(\t)
- Unicode
(\u{})
- Line feed
- 다양한 문자 표기 방법
✔ 문자열 길이 및 접근
- 문자열 길이
문자열 길이 확인:String.length
const str = `hello
world
!!!`;
const newline_string = "hello\nworld\n!!!";
console.log(str.length); // 15
console.log(newline_string.length); // 15
- 문자 접근
문자열 내 개별 문자 접근:String.charAt(index)
,String.charCodeAt(index)
,String[index]
const text = "hello, world!!!";
console.log(str.charAt(1)); // e
console.log(str.charCodeAt(1)); // 101
console.log(str[3]); // l
✔ 문자열 검색 및 변환
- 문자열 검색
- 문자열 검색(index):
String.indexOf()
,String.lastIndexOf()
- 문자열 검색(bool):
String.includes()
,String.startsWith()
,String.endsWith()
- 문자열 검색(index):
- 문자열 대소문자 변환
대소문자 변환:String.toUpperCase()
,String.toLowerCase()
3) 문자열 변환
✔ 문자열 치환
- 처음 만나는 요소 문자열 치환(치환된 문자열 반환):
String.replace()
- 정규 표현식 활용: 치환 문자열에 정규 표현식 기입 -> /치환문자열/g(전체)i(대소문자 구분x)
const text = "helLo, world!!!";
const changed_txt = "";
changed_txt = text.replace("world", "hello");
console.log(changed_txt); // helLo, hello!!!
console.log(text); // helLo, world!!!
console.log(text.repalce("!", "?")); // helLo, world?!! // 첫 번째 해당하는 문자만 치환
console.log(text.repalce("l", "?")); // he?Lo, world!!!
console.log(text.repalce(/l/g, "i")); // heiLo, worid!!!, 같은 형태 l만
console.log(text.repalce(/l/g, "?")); // he??o, wor?d!!!, 구분없이 l 전체
✔ 문자열 추출
- 위치 기반 문자열 추출:
String.slice()
,String.substring()
- 길이 기반 문자열 추출:
String.substr()
const text = "hello, world!!!";
console.log(text.slice(0, 5)); // hello, end는 포함x
console.log(text.slice(4, 5)); // o
console.log(text.slice(4)); // o, world!!!, start 이후부터
console.log(text.slice(-4)); // d, 제일 끝: -1
✔ 문자열 분할
배열로 문자열 분할: String.split()
const fruits = "apple watermelon grape";
result = fruits.split("");
console.log(result); // ['apple', 'watermelon', 'grape']
const text = "hello";
result = text.split("");
console.log(result); // ['h', 'e', 'l', 'l', 'o']
console.log(result.length); // 5
result = text.split("", 3); // 개수 지정
console.log(result); // ['h', 'e', 'l']
반응형