자바스크립트에는 여러가지 자료형이 있습니다. 하지만 좀더 정확하게 구분하자면
오직 하나의 데이터
(문자열, 숫자 등)만 담을 수 있는 원시형
(primitive type)
데이터가 있고 다양한 값을 담을수 있는 객체
가 있죠
메서드 들중에서도 자주쓰는 메서드를 알아보겠습니다.
str.indexOf
제로베이스 기준으로 'world' 라는 문자열이 몇번째에 부터 시작하는지 체크합니다.
만약 일치하는 값을 찾지 못하면 -1
을 반환합니다.
console.log('hello world'.indexOf('world')) //6
문자열 을 0번째부터 3번 직전
까지 출력합니다.
console.log('hello korea'.slice(0,3)); // hel
변경하고싶은 문자를 앞에 적고 , 변경할 문자를 적어줍니다.
console.log('hello wrold!'); //hello wrold!
console.log('hello world!'.replace('world!','korea')); //hello korea
다만 replace 메서드 는 대.소문 자를 구문하고 한번만 실행됩니다.
따라서 정규표현식 을 따로배워 이를 해결해야합니다.
첫 문자열의 앞부분
과 끝 문자열의 뒷부분
을 공백없이 만듭니다.
const str = ' hello world '
console.log(str.trim()); //hello world
소수점 아래를 몇번째 까지 출력할지 정합니다. 여기서 마지막 자리는 그전자리를 반올림
해줍니다.
console.log(1.23456789.toFixed(3)); // 1.235
console.log(1.23446789.toFixed(3)); // 1.234
여기서 중요한게 toFixed() 메서드는 숫자가 아닌 문자열
을 출력합니다.
const str = 1.23456.toFixed(3);
console.log(str+1); // 1.2351
위와 연계되는 내용으로 문자열을 숫자로 바꿔주는 메서드 입니다.
문자열 1.235 를 숫자로 변경후 1을 더해보겠습니다.
let str = 1.23456.toFixed(3); //1.235
str =parseInt(str) // 1
console.log(str+1); // 2
parseFloat 은 소수점 까지 남겨둡니다.
let str = 1.23456.toFixed(3); // 1.235 문자열
str =parseFloat(str) // 1.235 숫자형
치환된 str 에 1을 더하면 어떻게 될까요?
console.log(str+1); //2.2350000000000003
2.235 가 아닌 2.2350000000000003 가 출력되었습니다. 왜그럴까요?
컴퓨터는 우리가 쓰는 10진법이 아닌 2진법으로 동작합니다.
따라서 2의 배수가 아닌것은 무한소수가 나오죠
console.log((0.1+0.2)==0.3); // false
console.log(0.1+0.2); //0.30000000000000004
즉 2진법에서는 이러한 현상들이 자주 발생하며 해결하기 위해서는 다시 toFixed()를 사용하거나
console.log((0.1*10 + 0.2 *10)/10)
와 같이 정수에서 계산후 다시 소수로 변환 할수도 있습니다.
절대값을 리턴해줍니다.
aa = -5;
console.log(Math.abs(aa)); //5
최대/최솟 값을 반환합니다.
console.log(Math.max(1,2,3,4,5,6,7,8,9)); //9
console.log(Math.min(1,2,3,4,5,6,7,8,9)); //1
소수점 첫째자리를 올림,내림, 반올림을 합니다.
console.log(Math.ceil(3.141592)); // 4 (올림)
console.log(Math.floor(3.141592)); // 3 (내림)
console.log(Math.round(3.141592)); // 3 (반올림)
0~1의 난수를 출력합니다.
0.5448485994927887
0.3240274615965837
0.7117202567764807
따라서 실생활에 쓰이는 랜덤 함수를 쓰려면 아래와 같이 사용합니다. 0~10
const random = Math.floor(10*Math.random());
console.log(random);