javascript 메소드들을 그래도 꽤 많이 써보지 않았을까 생각할 때, 꼭 새로운 메소드 기능을 발견하고는 놀란다.
구문
continue [label];
continue 문은 현재 또는 레이블이 지정된 루프의 현재 반복에서 명령문을 종료 하고 반복문의
처음으로 돌아가 루프문을 반복한다고 한다.
"01010001" 중에 "0"면 제외하고, "1" 만 만드는 문자열을 반환 하려고 했다.
여러방법이 있겠지만 먼저 while문 과 splice method를 사용하려고 했다.
let s = "01010001";
let str = s.split(""); // splice를 활용하기 위해 배열을 만들었다.
let i = 0;
while (i < str.length) {
if (str[i] === "0") {
str.splice(i, 1);
} else {
i++;
}
}
str.join("");
여기서 for문을 사용하여 새로운 문자열을 만들 수 있다고 생각했다.
let s = "01010001";
let answer = "";
for (let i = 0; i < s.length; i++) {
if (s[i] === "1") answer += "1";
}
continue를 사용한 예시이다.
let s = "01010001";
let answer = "";
for (let i = 0; i < s.length; i++) {
if (s[i] === "0") {
continue;
}
answer += s[i];
}
위 3가지 모든 코드에서 "0"을 뺀 문자열인 "111"반환 하기위해 사용한 코드들 이었다.
for
, while
문 에서 break
와 달리 루프를 실행 종료하지 않고, 다음과 같이 동작한다고 한다.
while
루프에서는 다시 조건으로 점프한다고 한다.for
루프에서는 업데이트 표현식으로 점프한다고 한다. continue 와 [label] 을 사용하면 선택적으로 건너 뛸 수 있다고 한다.
다음은 예시이다.
test1: for (let i = 0; i < 3; i++) {
console.log(`i = ${i} 일 때,`);
for (let j = 0; j < 2; j++) {
if (i === 1) {
console.log(`건너뜁니다.`);
continue test1;
}
console.log(`j가 ${j} 일 때, (i,j) = (${i}, ${j})`);
}
console.log("입니다.");
}
/*
i = 0 일 때,
j가 0 일 때, (i,j) = (0, 0)
j가 1 일 때, (i,j) = (0, 1)
입니다.
i = 1 일 때,
건너뜁니다.
i = 2 일 때,
j가 0 일 때, (i,j) = (2, 0)
j가 1 일 때, (i,j) = (2, 1)
입니다.
*/
toString()은 10진수를 n진수로 변환하여 문자열로 바꿔주는 것으로만 알고 있었다. 알고만 있었을 뿐 사용은 안하는 메소드라 이번에 가볍게 올리려고 했는데...(두둥)
선택적으로 radix(기수)를 매개변수로 취합한다고 한다. 기수의 값은 최소 2~36까지라고 한다.
10진수를 다른 진수로 변환할 수 있다고 한다.
let num = 10
console.log(num.toString()) //'10'
console.log(num.toString(2)) //'1010'
MDN을 보던 중 생각보다 내용이 깊어져 아래 벨로그를 작성하였다.
Object.prototype.toString()
[continue, MDN, 2022년06월23일 접속]
https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Statements/continue
[Object.prototype.toString(), MDN, 2022년06월24일 접속]
https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Object/toString#%EC%8B%9C%EB%8F%84%ED%95%B4%EB%B3%B4%EA%B8%B0