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