728x90
MDN
0. 목차
- 문자열
- split - 구분자를 이용하여 문자열을 여러 문자열로된 배열로 만들기
- repeat - 문자열 반복
- slice - 문자열 일부 추출
- substring - 문자열 일부 추출
- charAt - string[index]
- concat - 문자열 연결하기
- includes - 문자열에 다른 문자열이 포함 여부
- indexOf - 문자열에 다른 문자열 찾기
- padEnd - 문자열 형식 채우기
- replace - 일치하는 첫번째 부분만 변환
- replaceAll - 일치하는 모든 부분이 변환
- toLowerCase - 소문자로 변환
- toUpperCase - 대문자로 변환
- trim - 양끝 공백 제거
- 배열
- splice - 배열 원소 제거
- slice - 부분 배열 복사본
- fill - 배열 채우기
- map - 배열의 모든 요소 가공하여 새로운 배열 반환
- filter - 배열의 콜백함수를 통과한 요소로 구성된 새로운 배열 반환
- find - 판별함수를 만족하는 첫번째 요소 반환
- findIndex - 판별함수를 만족하는 첫번째 요소 index 반환
- join - 배열을 구분문자와 함께 문자열로 만들기
- indexOf - 찾고자하는 요소의 첫 요소 index 반환
- push - 배열 뒤에 추가
- pop - 배열 뒤에 제거
- unshift - 배열 앞에 추가
- shift - 배열 앞에 제거
- sort - 배열 정렬 (비교함수가 음수면 swap)
1. 반복문
// 기본 반복문
for(let i = 0; i < N; i++)
// forEach()
// break문, continue문 사용 불가능
array.forEach(element => { ... });
array.forEach((value, index, arr) => { ... });
// for...of 명령문은 반복가능한 객체 (Array, Map, Set, String, TypedArray, arguments 객체 등을 포함)에 대해서 반복하고
// 각 개별 속성값에 대해 실행되는 문이 있는 사용자 정의 반복 후크를 호출하는 루프를 생성합니다.
// for문보다 효율성 좋음(프로그래머스 문제에서 for문 걸리는 경우 for of문 사용해보기)
for (const element of array1) {
console.log(element);
}
for (const element of string) {
console.log(element);
}
// for...in문은 상속된 열거 가능한 속성들을 포함하여 객체에서 문자열로 키가 지정된 모든 열거 가능한 속성에 대해 반복합니다.
// (Symbol로 키가 지정된 속성은 무시합니다.)
for(const property in object){
console.log(`${property}: ${object[property]}`);
}
2. 문자열
string.split([separator[, limit]])
반환값
- 주어진 문자열을 separator마다 끊은 부분 문자열을 담은 Array
설명
- separator (Optional)
- 원본 문자열을 끊어야 할 부분을 나타내는 문자열
- 실제 문자열이나 정규표현식을 받을 수 있습니다.
- 두 글자 이상일 경우 그 부분 문자열 전체가 일치해야 끊어집니다.
- separator가 생략되거나 str에 등장하지 않을 경우, 반환되는 배열은 원본 문자열을 유일한 원소로 가집니다.
- separator가 빈 문자열일 경우 str의 각각의 문자가 배열의 원소 하나씩으로 변환됩니다.
- limit (Optional)
- 끊어진 문자열의 최대 개수를 나타내는 정수
- separator가 등장할 때마다 문자열을 끊지만 배열의 원소가 limit개가 되면 멈춥니다.
- 지정된 한계에 도달하기 전에 문자열의 끝까지 탐색했을 경우 limit개 미만의 원소가 있을 수도 있습니다.
- 남은 문자열은 새로운 배열에 포함되지 않습니다.
str.repeat(count);
반환값
- 문자열을 주어진 횟수만큼 반복해 붙인 새로운 문자열
설명
- count
- 문자열을 반복할 횟수. 0과 양의 무한대 사이의 정수([0, +∞))
str.slice(beginIndex[, endIndex])
반환값
- 문자열의 일부를 추출하면서 새로운 문자열을 반환
설명
- 원본 문자열은 변경되지 않습니다.
- beginIndex
- 추출 시작점인 0부터 시작하는 인덱스입니다.
- 만약 음수라면, beginIndex는 strLength(문자열 길이) + beginIndex로 취급됩니다.
- 예를 들어 beginIndex가 -3이면 시작점은 strLength - 3
- 만약 beginIndex가 strLength 보다 크거나 같은 경우, slice()는 빈 문자열을 반환합니다.
- endIndex (Optional)
- 0부터 시작하는 추출 종료점 인덱스로 그 직전까지 추출됩니다.
- 인덱스 위치의 문자는 추출에 포함되지 않습니다.
- 만약 endIndex가 생략된다면, silce()는 문자열 마지막까지 추출합니다.
- 만약 음수라면, endIndex는 strLength(문자열 길이) + endIndex 로 취급됩니다.
- 예를 들어 endIndex가 -3이면 종료점은 strLength - 3
str.substring(indexStart[, indexEnd])
반환값
- string 객체의 시작 인덱스로 부터 종료 인덱스 전 까지 문자열의 부분 문자열을 반환
- 만약 indexEnd 가 생략된 경우, substring() 문자열의 끝까지 모든 문자를 추출합니다.
- 만약 indexStart 가 indexEnd와 같을 경우, substring() 빈 문자열을 반환합니다.
- 만약 indexStart 가 indexEnd보다 큰 경우, substring() 메서드는 마치 두 개의 인자를 바꾼 듯 작동하게 됩니다.
- 0보다 작은 인자 값을 가지는 경우에는 0으로, stringName.length 보다 큰 인자 값을 가지는 경우, stringName.length 로 처리됩니다.
설명
- str.substr 과 동일한 작업을 하지만 ECMA-262 표준에서는 str.substr를 제거 예정으로 명시함
- indexStart
- 반환문자열의 시작 인덱스
- indexEnd (Optional)
- 반환문자열의 마지막 인덱스 (포함하지 않음)
str.charAt(index)
반환값
- 지정된 인덱스에 해당하는 유니코드 단일문자를 반환
- 만약 인덱스가 문자열 길이보다 큰 경우 빈 문자열 (예) " " 을 반환
설명
- str[index]와 차이점 (index가 범위를 벗어난 경우)
- str[index]에서는 undefined 반환
- charAt(index)에서는 빈 문자열('') 반환
- index
- 0과 문자열의 길이 - 1 사이의 정수값
- 인자를 생략하면 기본값으로 0를 설정되고 첫 문자를 반환
str.concat(string2, string3[, ..., stringN])
반환값
- 매개변수로 전달된 모든 문자열을 호출 문자열에 붙인 새로운 문자열을 반환
- 원본 문자열은 변경되지 않습니다.
설명
- string2, ...
- 뒤에 이어 연결할 문자열
str.includes(searchString[, position])
반환값
- 하나의 문자열이 다른 문자열에 포함되어 있는지를 판별하고, 결과를 true 또는 false 로 반환
설명
- searchString
- 문자열에서 찾을 다른 문자열.
- position (Optional)
- searchString을 찾기 시작할 위치
- 기본값 0
str.indexOf(searchValue[, fromIndex])
반환값
- 호출한 String 객체에서 주어진 값과 일치하는 첫 번째 인덱스를 반환
- 일치하는 값이 없으면 -1을 반환
설명
- searchValue
- 찾으려는 문자열
- 아무값도 주어지지 않으면 문자열로 된 'undefined'를 찾으려는 문자열로 사용
- fromIndex (Optional)
- 문자열에서 찾기 시작하는 위치를 나타내는 인덱스 값
- 기본값 0
str.padEnd(targetLength [, padString])
반환값
- 현재 문자열에 다른 문자열을 채워, 주어진 길이를 만족하는 새로운 문자열을 반환
- 채워넣기는 대상 문자열의 끝(우측)부터 적용
설명
- targetLength
- 목표 문자열 길이. 현재 문자열의 길이보다 작다면 채워넣지 않고 그대로 반환
- padString (Optional)
- 현재 문자열에 채워넣을 다른 문자열. 문자열이 너무 길어 목표 문자열 길이를 초과한다면 좌측 일부를 잘라서 넣음
- 기본값 " "
var newStr = str.replace(regexp|substr, newSubstr|function)
반환값
- 어떤 패턴에 일치하는 일부 또는 모든 부분이 교체된 새로운 문자열을 반환
- 패턴은 문자열이나 정규식(RegExp)이 될 수 있으며, 교체 문자열은 문자열이나 모든 매치에 대해서 호출된 함수
설명
- pattern이 문자열 인 경우, 첫 번째 문자열만 치환
- 원본 문자열은 변경되지 않습니다.
- regexp (pattern)
- 정규식(RegExp) 객체 또는 리터럴
- 일치하는 항목은 newSubStr 또는 지정된 함수(function)가 반환 한 값으로 대체
- substr (pattern)
- newSubStr로 대체 될 String. 정규식이 아닌 글자 그대로의 문자열로 처리됩니다.
- 오직 첫 번째 일치되는 문자열만이 교체됩니다.
- newSubStr (replacement)
- 첫번째 파라미터를 대신할 문자열(String). 여러가지 대체 패턴들이 지원
var newStr = str.replaceAll(regexp|substr, newSubstr|function)
반환값
- 어떤 패턴에 일치하는 일부 또는 모든 부분이 교체된 새로운 문자열을 반환
- 패턴은 문자열이나 정규식(RegExp)이 될 수 있으며, 교체 문자열은 문자열이나 모든 매치에 대해서 호출된 함수
설명
- replace와 동일한 인자를 갖는다.
- replace는 첫 번째 문자열만 치환하고, replaceAll은 모든 문자열을 치환한다.
str.toLowerCase()
반환값
- 호출 문자열을 소문자로 변환한 새로운 문자열
설명
- 원본 문자열은 변경되지 않습니다.
str.toUpperCase()
반환값
- 호출 문자열을 대문자로 변환한 새로운 문자열
설명
- 원본 문자열은 변경되지 않습니다.
str.trim()
반환값
- str 문자열의 양끝의 공백을 제거한 새로운 문자열을 반환
- str 문자열에 공백이 없어도 예외가 발생하지 않고 새 문자열이 반환
설명
- 원본 문자열은 변경되지 않습니다.
3. 배열
array.splice(start[, deleteCount[, item1[, item2[, ...]]]])
반환값
- 제거한 요소를 담은 배열. 하나의 요소만 제거한 경우 길이가 1인 배열을 반환합니다.
- 아무 값도 제거하지 않았으면 빈 배열을 반환합니다.
설명
- 원본 배열은 변경됩니다.
- start
- 배열의 변경을 시작할 인덱스
- 배열의 길이보다 큰 값이라면 실제 시작 인덱스는 배열의 길이로 설정
- 음수인 경우 배열의 끝에서부터 요소를 세어나갑니다(원점 -1, 즉 -n이면 요소 끝의 n번째 요소를 가리키며 array.length - n번째 인덱스와 같음)
- 값의 절대값이 배열의 길이 보다 큰 경우 0으로 설정
- deleteCount (Optional)
- 배열에서 제거할 요소의 수
- deleteCount를 생략하거나 값이 array.length - start보다 크면 start부터의 모든 요소를 제거
- deleteCount가 0 이하라면 어떤 요소도 제거하지 않습니다. 이 때는 최소한 하나의 새로운 요소를 지정해야 합니다.
- item1, item2, ... (Optional)
- 배열에 추가할 요소
- 아무 요소도 지정하지 않으면 splice()는 요소를 제거하기만 합니다.
arr.slice([begin[, end]])
반환값
- 어떤 배열의 begin부터 end까지(end 미포함)에 대한 얕은 복사본을 새로운 배열 객체로 반환
설명
- 원본 배열은 변경되지 않습니다.
- begin (Optional)
- 0을 시작으로 하는 추출 시작점에 대한 인덱스
- 음수 인덱스는 배열의 끝에서부터의 길이를 나타냅니다.
- slice(-2) 는 배열에서 마지막 두 개의 엘리먼트를 추출합니다.
- begin이 undefined인 경우에는, 0번 인덱스부터 slice 합니다.
- begin이 배열의 길이보다 큰 경우에는, 빈 배열을 반환합니다.
- end (Optional)
- 추출을 종료 할 0 기준 인덱스
- slice 는 end 인덱스를 제외하고 추출합니다.
- 예를 들어, slice(1,4)는 두번째 요소부터 네번째 요소까지 (1, 2 및 3을 인덱스로 하는 요소) 추출합니다.
- 음수 인덱스는 배열의 끝에서부터의 길이를 나타냅니다.
- 예를들어 slice(2,-1) 는 세번째부터 끝에서 두번째 요소까지 추출합니다.
- end가 생략되면 slice()는 배열의 끝까지(arr.length) 추출합니다.
- 만약 end 값이 배열의 길이보다 크다면, silce()는 배열의 끝까지(arr.length) 추출합니다.
arr.fill(value[, start[, end]])
반환값
- 배열의 시작 인덱스부터 끝 인덱스의 이전까지 정적인 값 하나로 채운 배열
설명
- value
- 배열을 채울 값
- start (Optional)
- 시작 인덱스
- 기본값은 0
- end (Optional)
- 끝 인덱스
- 기본값은 this.length
arr.map(callback(currentValue[, index[, array]])[, thisArg])
반환값
- 배열 내의 모든 요소 각각에 대하여 주어진 함수를 호출한 결과를 모아 새로운 배열을 반환
설명
- 원본 배열은 변경되지 않습니다.
- callback
- 새로운 배열 요소를 생성하는 함수
- currentValue, index, array를 인수로 가집니다.
- currentValue
- 처리할 현재 요소
- index (Optional)
- 처리할 현재 요소의 인덱스
- array (Optional)
- map( )을 호출한 배열
arr.filter(callback(element[, index[, array]])[, thisArg])
반환값
- 테스트를 통과한 요소로 이루어진 새로운 배열
- 어떤 요소도 테스트를 통과하지 못했으면 빈 배열을 반환
설명
- 원본 배열은 변경되지 않습니다.
- callback
- 각 요소를 시험할 함수. true를 반환하면 요소를 유지하고, false를 반환하면 버립니다.
- element, index, array를 매개변수로 받습니다.
- element
- 처리할 현재 요소
- index (Optional)
- 처리할 현재 요소의 인덱스
- array (Optional)
- filter를 호출한 배열
arr.find(callback[, thisArg])
반환값
- 주어진 판별 함수를 만족하는 첫 번째 요소의 값을 반환합니다.
- 그런 요소가 없다면 undefined를 반환합니다.
설명
- callback
- 배열의 각 값에 대해 실행할 함수
- element, index, array를 인자로 받습니다.
- element
- 콜백함수에서 처리할 현재 요소
- index (Optional)
- 콜백함수에서 처리할 현재 요소의 인덱스
- array (Optional)
- find 함수를 호출한 배열
arr.findIndex(callback(element[, index[, array]])[, thisArg])
반환값
- 주어진 판별 함수를 만족하는 배열의 첫 번째 요소에 대한 인덱스를 반환합니다.
- 만족하는 요소가 없으면 -1을 반환합니다.
설명
- callback
- 3개의 인수를 취하여 배열의 각 값에 대해 실행할 함수입니다.
- element, index, array를 인수로 받습니다.
- element
- 배열에서 처리중인 현재 요소
- index
- 배열에서 처리중인 현재 요소의 인덱스
- array
- findIndex 함수가 호출된 배열
arr.join([separator])
반환값
- 배열의 모든 요소들을 연결한 하나의 문자열을 반환
- arr.length 가 0이라면, 빈 문자열을 반환
설명
- separator (Optional)
- 배열의 각 요소를 구분할 문자열을 지정합니다.
- 생략하면 배열의 요소들이 쉼표로 구분됩니다.
- separator가 빈 문자열이면 모든 요소들이 사이에 아무 문자도 없이 연결됩니다.
arr.indexOf(searchElement[, fromIndex])
반환값
- 배열에서 지정된 요소를 찾을 수 있는 첫 번째 인덱스를 반환
- 존재하지 않으면 -1을 반환
설명
- searchElement
- 배열에서 찾을 요소
- fromIndex (Optional)
- 검색을 시작할 색인
- 인덱스가 배열의 길이보다 크거나 같은 경우 -1이 반환
- 산 된 인덱스가 0보다 작 으면 전체 배열이 검색됩니다.
- 기본값 0
arr.push(element1[, ...[, elementN]])
반환값
- 배열의 끝에 하나 이상의 요소를 추가하고, 배열의 새로운 길이를 반환
설명
- elementN
- 배열의 끝에 추가할 요소
arr.pop()
반환값
- 배열에서 마지막 요소를 제거하고 그 요소를 반환
설명
- 빈 배열의 경우 undefined 를 반환
arr.unshift([...elementN])
반환값
- 새로운 요소를 배열의 맨 앞쪽에 추가하고, 새로운 길이를 반환
설명
- elementN
- 배열 맨 앞에 추가할 요소
arr.shift()
반환값
- 배열에서 첫 번째 요소를 제거하고, 제거된 요소를 반환
설명
- 빈 배열의 경우 undefined 를 반환
arr.sort([compareFunction])
반환값
- 배열의 요소를 적절한 위치에 정렬한 후 그 배열을 반환
설명
- 원본 배열은 변경됩니다.
- compareFunction (Optional)
- 정렬 순서를 정의하는 함수
- 생략하면 배열은 각 요소의 문자열 변환에 따라 각 문자의 유니 코드 코드 포인트 값에 따라 정렬
- compareFunction(a, b)이 0보다 작은 경우 a를 b보다 낮은 색인으로 정렬합니다. 즉, a가 먼저옵니다.
- compareFunction(a, b)이 0을 반환하면 a와 b를 서로에 대해 변경하지 않고 모든 다른 요소에 대해 정렬합니다.
- compareFunction(a, b)이 0보다 큰 경우, b를 a보다 낮은 인덱스로 소트합니다.
- 0, 양수면 그대로 / 음수면 swap
4. 객체
5. 기타
값이 없거나 0, -0, null, false, NaN, undefined, 빈 문자열 ("")이라면 객체의 초기값은 false입니다.
Number.MIN_SAFE_INTEGER
// JavaScript에서 안전한 최소 정수값
Number.MAX_SAFE_INTEGER
// JavaScript에서 안전한 최대 정수값
Number.NaN
// Not-A-Number(숫자가 아님)를 나타내고 NaN과 같습니다
Number.isInteger(value)
// 매개변수의 값이 정수면 true를, 아니면 false를 반환
// NaN이거나 Infinity여도 false를 반환
Number.isNaN(value)
// 주어진 값의 유형이 Number이고 값이 NaN이면 true, 아니면 false
Number.parseInt(string[, radix])
// 문자열 인자를 파싱하여 특정 진수(수의 진법 체계에서 기준이 되는 값)의 정수를 반환
// string이 radix진수로 되어있으니 10진수로 변환하여 반환
// parInt()와 동일한 기능을 하지만
// string : 문자열이 아닐 경우 ToString 추상 연산을 사용해 문자열로 변환하고 선행 공백은 무시
// radix (Optional) : string의 진수를 나타내는 2부터 36까지의 정수
numObj.toFixed([digits])
// 숫자를 고정 소수점 표기법으로 표기해 반환
// digits (Optional) : 소수점 뒤에 나타날 자릿수. 0 이상 20 이하의 값을 사용, 생략하면 0
numObj.toString([radix])
// 특정한 Number 객체를 나타내는 문자열을 반환
// radix (Optional) : 수의 값을 나타내기 위해 사용되기 위한 기준을 정하는 2와 36사이의 정수
Math.abs(x)
// 주어진 숫자의 절댓값 반환
Math.ceil(x)
// 주어진 숫자보다 크거나 같은 숫자 중 가장 작은 숫자를 integer로 반환
Math.floor(x)
// 주어진 숫자와 같거나 작은 정수 중에서 가장 큰 수를 반환
Math.max([value1[, value2[, ...]]])
// 입력값으로 받은 0개 이상의 숫자 중 가장 큰 숫자를 반환
Math.min([value1[, value2[, ...]]])
// 입력값으로 받은 0개 이상의 숫자 중 가장 작은 숫자를 반환
Math.pow(base, exponent)
// base^exponent처럼 base 에 exponent를 제곱한 값을 반환
Math.random()
// 0 이상 1 미만의 부동소숫점 의사 난수 반환
Math.round(x)
// 입력값을 반올림한 수와 가장 가까운 정수 값을 반환
Math.sign(x)
// 주어진 수의 부호를 나타내는 +/-1을 반환
// 주어진 수가 (양/음)의 0인 경우 (0/-0) 반환
// 이외의 경우 NaN 반환
Math.sqrt(x)
// 숫자의 제곱근 반환
// 숫자가 음수인 경우 NaN 반환
6. 꿀팁
- 최댓값 + 최댓값 index + 최댓값 제거하기
arr.splice(arr.indexOf(Math.max(...arr)),1);
- 찾고자하는 원소의 모든 index 추출하기
let str = 'abccbaabccba';
let index = str.indexOf('a');
while(index != -1) {
console.log(index);
index = str.indexOf('a', index + 1);
}
- 배열의 중복 원소 제거
let nums = [1, 3, 5, 5, 3, 1];
let s = [...new Set(nums)];
- 진수 변환
// 10진수 → n진수
let num10 = 123;
const binary = num.toString(2); // 10진수 → 2진수
const octal = num.toString(8); // 10진수 → 8진수
const hex = num.toString(16); // 10진수 → 16진수
// n진수 → 10진수
let binary = '111';
const num = parseInt(binary, 2); // 2진수 → 10진수
let octal = "777";
const decimal = parseInt(octal, 8); // 8진수 → 10진수
let hex = "fff";
const decimal = parseInt(hex, 16); // 16진수 → 10진수
728x90
'Developer > Coding Test' 카테고리의 다른 글
[프로그래머스] Lv2 롤케이크 자르기 (Javascript) (0) | 2022.10.21 |
---|
댓글