728x90

오늘의 자바스크립트

1. 자바스크립트의 sort()

자바스크립트는 기본 sort() 함수에 아무런 정의를 해주지 않으면, ASCII 넘버 순으로 정렬한다.
언어의 기본 설정이 그렇게 되어있을 뿐, 특별한 이유는 없다.
다만 자바스크립트의 사용 특성상, 문자와 숫자 등이 섞여있는 리스트 등을 다룰 수 있고,
이러한 배열을 정렬하는 것은 문자열을 기준으로 하는 것이 오류가 없기 때문이라 생각된다.

숫자로 이루어진 배열을 올바르게 정렬하려면 아래와 같이 코드를 짜야한다.

array.sort((a, b) => {
  return a - b;
});

이는 오름차순 기준이며, 내림차순은 b - a로 반환하면 된다.

만약 문자열로 된 숫자들을 받아왔다면, 아래와 같이 코드를 짠다.

array.sort((a, b) => {
  return Number(a) - Number(b);
});

자바스크립트는 sort()를 쓸 때도 반드시 유의하자.


2. 자바스크립트 n진법

자바스크립트는 숫자를 매우 쉽게 n진법 문자열로 출력할 수 있다.
바로 toString()함수를 사용하면 된다.

const num = 42;
const binaryString = num.toString(2);
const octalString = num.toString(8);

console.log(binaryString); // "101010"
console.log(octalString); // "52"

기본적으로 자바스크립트의 toString()은 2에서 36진법까지 지원하고 있다.


3. 자바스크립트의 빈배열

자바스크립트는 빈배열의 Boolean() 함수 반환값은 true이다.
이는 빈 배열 또한 truthy값으로 평가하기 때문이다.
자바스크립트의 falsy값은 false, 0, null, undefined, NaN, '' 등이다.
빈 배열은 "객체"라는 하나의 타입을 가지고 있기 때문에 true를 반환한다.
배열 안에 내용이 남아있는 동안 이라는 조건을 부여하려면,

let arr = [1, 2, 3, 4, 5];
while (0 < arr.length) {
  let pop = arr.pop();
}

위와 같이 작성하는 것이 옳다.

728x90

+ Recent posts