이 글은 인프런에서의 'Javascript 비기너' 강의와 https://poiemaweb.com/ 에서의 빌트인 오브젝트 관련 내용을 참고하여 작성함.
Array
는 1개의 변수에 여러 개의 값을 순차적으로 저장할 때 사용한다. 자바스크립트의 배열은 객체이며 유용한 내장 메소드를 포함하고 있다.
0개 이상의 값을 쉼표로 구분하여 대괄호([])
로 묶는다.
첫번째 값은 인덱스 ‘0’으로 시작한다.
const emptyArr = [];
console.log(emptyArr[1]); // undefined
console.log(emptyArr.length); // 0
const arr = [
'zero', 'one', 'two', 'three', 'four',
'five', 'six', 'seven', 'eight', 'nine'
];
console.log(arr[1]); // 'one'
console.log(arr.length); // 10
console.log(typeof arr); // object
배열은 객체이기 때문에 배열의 요소를 삭제하기 위해 delete
연산자를 사용할 수 있다. 이때 length에는 변함이 없다. 해당 요소를 완전히 삭제하여 length에도 반영되게 하기 위해서는 Array.prototype.splice
메소드를 사용한다.
const numbersArr = ['zero', 'one', 'two', 'three'];
// 요소의 값만 삭제된다
delete numbersArr[2]; // (4) ["zero", "one", empty, "three"]
console.log(numbersArr);
요소 값만이 아니라 요소를 완전히 삭제하려면
splice
메소드를 사용해야 한다.const numbersArr = ['zero', 'one', 'two', 'three']; //splice(시작 인덱스, 삭제할 요소수) numbersArr.splice(2, 1); // (3) ["zero", "one", "three"] console.log(numbersArr);
const arr = [1, 2, 2, 3];
// 배열 arr에서 요소 2를 검색하여 첫번째 인덱스를 반환
arr.indexOf(2); // -> 1
// 두번째 인수는 검색을 시작할 인덱스이다. 두번째 인수를 생략하면 처음부터 검색한다.
arr.indexOf(2, 2); // 2
배열에 없는 요소를 파라미터에 적을 경우 -1
을 반환한다.
,
이다.const arr = [1, 2, 3, 4];
// 기본 구분자는 ','이다.
// 원본 배열 arr의 모든 요소를 문자열로 변환한 후, 기본 구분자 ','로 연결한 문자열을 반환
let result = arr.join();
console.log(result); // '1,2,3,4';
// 원본 배열 arr의 모든 요소를 문자열로 변환한 후, 빈문자열로 연결한 문자열을 반환
result = arr.join('');
console.log(result); // '1234'
push
와 pop
은 인수로 전달받은 값을 원본 배열의 마지막에 요소로 추가, 삭제하고 변경된 length 값을 반환한다.const arr = [1, 2];
// 인수로 전달받은 모든 값을 원본 배열의 마지막에 요소로 추가하고 변경된 length 값을 반환한다.
let result = arr.push(3, 4);
console.log(result); // 4
console.log(arr); // [1, 2, 3, 4]
// 원본 배열에서 마지막 요소를 제거하고 제거한 요소를 반환한다.
let result = arr.pop();
console.log(result); // 3
console.log(arr); // [1, 2, 3]
const arr = [];
arr.push(1); // [1]
arr.push(2); // [1, 2]
arr.push(3); // [1, 2, 3]
arr.shift(); // [2, 3]
arr.shift(); // [3]
arr.shift(); // []
Math
는 수학 상수와 함수를 위한 프로퍼티와 메소드를 제공하는 빌트인 오브젝트이다.
인수의 절댓값(absolute value)을 반환한다.
인수의 소수점 이하를 반올림한 정수를 반환한다.
인수의 소수점 이하를 올림한 정수를 반환한다.
인수의 소수점 이하를 내림한 정수를 반환한다. Math.ceil의 반대 개념이다.
Math.floor(1.9); // 1
Math.floor(9.1); // 9
Math.floor(-1.9); // -2
Math.floor(-9.1); // -10
Math.floor(1); // 1
Math.floor(); // NaN
Math.random(); // 0 ~ 1 미만의 부동 소수점 (0.8208720231391746)
📖 1 ~ 10에서의 랜덤 정수를 취득하려면?
// 1) Math.random로 0 ~ 1 미만의 부동 소수점을 구한 다음, 10을 곱해 0 ~ 10 미만의 부동 소수점을 구한다. // 2) 0 ~ 10 미만의 부동 소수점에 1을 더해 1 ~ 10까지의 부동 소수점을 구한다. // 3) Math.floor으로 1 ~ 10까지의 부동 소수점의 소수점 이하를 떼어 버린 다음 정수를 반환한다. const random = Math.floor((Math.random() * 10) + 1); console.log(random); // 1 ~ 10까지의 정수
Math.max(1, 2, 3); // 3
Math.min(1, 2, 3); // 1