
Math.sqrt(n) // 제곱근 구하기
Math.pow(a, b) // a의 b제곱 (ex: Math.pow(2, 3) → 8)
Math.abs(n) // 절댓값
Math.max(...arr) / Math.min(...arr) // 배열의 최대/최소값, 반드시 ...(전개 연산자)를 써야함.
Math.floor(n) // 내림 (정수 몫 구할 때 사용)
Math.ceil(n) // 올림
Math.round(n) // 반올림
Math.round(num * 100) / 100; // 소수 둘째 자리까지 반올림 (예: 3.14)
Number.isInteger(n) // 정수인지 판별
str.split('') // 문자열 → 문자 배열
arr.join('') // 문자 배열 → 문자열
str.includes('a') // 문자열에 특정 문자 포함 여부
str.indexOf('a') // 첫 등장 위치
str.slice(start, end) // 부분 문자열 추출
str.replace('a', 'b') // 문자 교체 (처음 1개만)
str.sort() // 문자열 정렬
str.sort().reverse() // 문자열 정렬 내림차순
str.replaceAll('a', 'b') // 문자 교체 (전체)
'abc'.repeat(3) // 반복 문자열 생성 ('abcabcabc')
arr.includes(x) // 배열에 x가 있는지
arr.indexOf(x) // x의 인덱스 (없으면 -1)
arr.push(x) / arr.pop() // 끝에 추가 / 제거
arr.unshift(x) / arr.shift() // 앞에 추가 / 제거
arr.slice(start, end) // 배열 일부 추출
arr.splice(start, deleteCount, item1, item2, ...) // 배열 자르거나 삽입
arr.reverse() // 배열 뒤집기
arr.sort((a, b) => a - b) // 숫자 오름차순 정렬
arr.map((element, index, array) => {
// element: 현재 값
// index: 해당 값의 인덱스
// array: 원본 배열
}); // 새 배열 생성
arr.filter((value, index, array) => {
// true를 반환하면 남기고, false면 제거됨
});
arr.reduce((acc, cur) => acc + cur) // 누적 합, 곱 등 계산
for (let i = 0; i < arr.length; i++) // 일반적인 반복문
for (let x of arr) // 요소 순회
for (let i in arr) // 인덱스 순회
new Set(arr) // 중복 제거
[...new Set(arr)] // 중복 제거된 배열
arr.every(x => 조건) // 모든 요소가 조건 만족하면 true
arr.some(x => 조건) // 하나라도 만족하면 true
Number(str) // 문자열 → 숫자
String(num) // 숫자 → 문자열
parseInt("1010", 2) // 문자열 → 정수 (2진수 "1010"을 10진수 10으로)
parseFloat('12.34') // 문자열 → 실수
Number.isInteger(value) // 값이 정수인지 판별
Number.isNaN(value) // 값이 숫자가 아닌 경우 true를 반환하고, 숫자면 false를 반환
typeof 123 === "number"; // true, 값이 숫자인지 판별
typeof "123" === "number"; // false, (정수인지까지는 모름)
toString()기본 : 숫자 -> 문자열 변환
let num = 123;
console.log(num.toString()); // "123"
let bool = true;
console.log(bool.toString()); // "true"
숫자를 다른 진법으로 변경
toString(radix)
let num = 255;
console.log(num.toString(2)); // "11111111" (2진수)
console.log(num.toString(8)); // "377" (8진수)
console.log(num.toString(16)); // "ff" (16진수)
// 다시 10진수로 바꾸는 메서드
parseInt(문자열, 진수);
const binary = "1010";
const decimal = parseInt(binary, 2); // 2진수를 10진수로!
console.log(decimal); // 10
객체에서의 toString()
객체는 기본적으로 "객체타입 문자열"로 변환됨
필요하면 toString()을 재정의할 수도 있음
const obj = { a: 1 };
console.log(obj.toString()); // "[object Object]"
const person = {
name: "John",
toString: function () {
return `Person: ${this.name}`;
},
};
console.log(person.toString()); // "Person: John"
배열에서의 toString()
let arr = [1, 2, 3];
console.log(arr.toString()); // "1,2,3"
in 과 includes()in은 보통 객체에서 해당 값이 존재하는지 여부를 bool로 판단
const obj = { name: "Neo", age: 20 };
console.log("name" in obj); // true
console.log("gender" in obj); // false
배열과 문자열에서는 해당 인덱스가 존재하는지를 판단
onst arr = [10, 20, 30];
console.log(0 in arr); // true (0번 인덱스가 있음)
console.log(2 in arr); // true
console.log(3 in arr); // false (3번 인덱스 없음)
const str = "hello";
console.log(1 in str); // true → 인덱스 1 존재 ("e")
console.log(5 in str); // false → 인덱스 5 없음
in은 속성(key) 또는 인덱스(index) 가 있는지 확인하는 용도고,
어떤 값이 배열에 존재하는지 확인하려면 includes()를 써야 한다.
const arr = [1, 2, 3];
console.log(arr.includes(4)); // false
console.log(!arr.includes(4)); // true → 4가 없으니까 true
❗️ 파이썬의 not in과 같은 연산자는 자바스크립트는 없다.
따라서 !를 사용해서 bool 값을 반전시켜주면 된다.
const obj = { name: "Neo", age: 20 };
console.log("name" in obj); // true
console.log(!("gender" in obj)); // true → gender가 없으니까 true