while
Baseline
Widely available
This feature is well established and works across many devices and browser versions. Itâs been available across browsers since â¨2015ë 7ìâ©.
while 문ì í
ì¤í¸ ì¡°ê±´ì´ ì°¸ì¼ë¡ íê°ëë ëì, ì§ì ë 문ì ì¤ííë ë°ë³µì ìì±í©ëë¤. ë¬¸ì´ ì¤íë기 ì ì ì¡°ê±´ì´ íê°ë©ëë¤.
ìëí´ ë³´ê¸°
let n = 0;
while (n < 3) {
n++;
}
console.log(n);
// ììëë ì¶ë ¥: 3
문ë²
while (condition)
statement
condition-
루í를 íµê³¼í ëë§ë¤ ë¬¸ì´ ì¤íë기 ì ì íê°ëë ííìì ëë¤. ë§ì½ ì´ ì¡°ê±´ì´ ì°¸ì¼ë¡ íê°ëë¤ë©´,
statementê° ì¤íë©ëë¤. ì´ ì¡°ê±´ì´ ê±°ì§ì¼ë¡ íê°ë ëë,whileë°ë³µë¬¸ ì´íì 문ì¼ë¡ ì¤íì´ ê³ìë©ëë¤. statement-
ì¡°ê±´ì´ ì°¸ì¼ë¡ íê°ëë ëì ì¤íëë 문ì ëë¤. ë¸ë¡ë¬¸ ì ì¬ì©íì¬, ì¬ë¬ê°ì 문ì ì¤íí ì ììµëë¤.
ì¤ëª
ë¤ë¥¸ ë°ë³µë¬¸ê³¼ ê°ì´, statement ììì íë¦ ì ì´ ë¬¸ ì ì¬ì©í ì ììµëë¤.
ìì
>while ì ì¬ì©íì¬
ë¤ì while ë°ë³µë¬¸ì nì´ 3ë³´ë¤ ìì¼ë©´ ë°ë³µë©ëë¤.
let n = 0;
let x = 0;
while (n < 3) {
n++;
x += n;
}
ë°ë³µí ëë§ë¤ ë°ë³µë¬¸ì nì ì¦ê°ìì¼ xì ëí©ëë¤.
ë°ë¼ì xì nì ë¤ìê³¼ ê°ì ê°ì ê°ìµëë¤:
- 첫 ë²ì§¸ íµê³¼ í
n= 1 ë°x= 1 - ë ë²ì§¸ íµê³¼ í
n= 2 ë°x= 3 - ì¸ ë²ì§¸ íµê³¼ í
n= 3 ë°x= 6
ì¸ ë²ì§¸ íµê³¼ë¥¼ ìë£íë©´ n < 3 ì¡°ê±´ì´ ë ì´ì ì°¸ì´ ìëê² ëë¯ë¡, ë°ë³µë¬¸ì´ ì¢
ë£ë©ëë¤.
ë³ì í ë¹ì ì¡°ê±´ì¼ë¡ ì¬ì©í기
ì´ë¤ ê²½ì°ìë ë³ì í ë¹ì ì¡°ê±´ì¼ë¡ ì¬ì©íë ê²ì´ í©ë¦¬ì ì¼ ì ììµëë¤. ì´ê²ì ê°ë ì±ê³¼ ìì¶©ëë ê²½ì°ê° ìì¼ë¯ë¡, 모ë ì¬ëì´ í¨í´ì ë ëª ííê² ììë³¼ ì ìë í¹ì íì ê¶ì¥ ì¬íì´ ììµëë¤.
ë¤ì ììë, 문ìì 주ìì ë°ë³µì²ë¦¬íì¬, ì½ìì ì¶ë ¥íë ì½ëì ëë¤.
const iterator = document.createNodeIterator(document, NodeFilter.SHOW_COMMENT);
let currentNode;
while (currentNode = iterator.nextNode()) {
console.log(currentNode.textContent.trim());
}
ì´ê²ì ë¤ì ì½ë ë문ì, ìì í ì¢ì ììë¼ê³ ë í ì ììµëë¤.
while (currentNode = iterator.nextNode()) {
ê·¸ íì ëìì ë§¤ë² ì£¼ì ë ¸ëê° ì»ì´ì§ë¤ë ì ììë ê´ì°®ìµëë¤.
iterator.nextNode()ë í´ë¹ 주ì ë ¸ë를 ë°ííë©°, ì´ ë ¸ëëcurrentNodeì í ë¹ë©ëë¤.- ë°ë¼ì
currentNode = iterator.nextNode()ì ê°ì truthyì ëë¤. - ë°ë¼ì
console.log()í¸ì¶ì´ ì¤íëê³ ë°ë³µë¬¸ì´ ê³ìë©ëë¤.
...ê·¸ë¦¬ê³ ë¬¸ìì ë ì´ì 주ì ë ¸ëê° ìë ê²½ì°ë ìëì ê°ìµëë¤.
iterator.nextNode()ënullì ë°íí©ëë¤.- ë°ë¼ì
currentNode = iterator.nextNode()ì ê°ënullì´ë©°, ì´ë ê±°ì§ì¼ë¡ íê°ë©ëë¤. - ë°ë¼ì ë°ë³µë¬¸ì´ ì¢ ë£ë©ëë¤.
ì´ ì¤ì 문ì ë, ì¼ë°ì ì¼ë¡ 조건문ì ===ì ê°ì ë¹êµ ì°ì°ì를 ì¬ì©íì§ë§ ì´ ì¤ì =ë ë¹êµ ì°ì°ìê° ìëë¼ í ë¹ ì°ì°ì ë¼ë ì ì
ëë¤. ë°ë¼ì =ë ===ì ì¤íì²ë¼ ë³´ì¬ì§ëë¤ (ì¤ì ë¡ë ì¤íê° ìëëë¼ë).
ë°ë¼ì ì´ì ê°ì ê²½ì°, ì¤í ê°ë¥ì±ì ê²ì¬íì¬ ìì í ì ìëë¡ ëì주ë ESLintì no-cond-assign ê·ì¹ê³¼ ê°ì, ì¼ë¶ ì½ë 린í
ë구ë ë¤ìê³¼ ê°ì ê²½ê³ ë¥¼ íìí©ëë¤.
Expected a conditional expression and instead saw an assignment. (ì¡°ê±´ë¶ ííìì 기ëíë ê³³ì í ë¹ì´ ìììµëë¤)
ë§ì ì¤íì¼ ê°ì´ëììë ì¡°ê±´ì´ í ë¹ì´ ëë ¤ë ìë를 ë³´ë¤ ëª ìì ì¼ë¡ íìí ê²ì ê¶ì¥í©ëë¤. ì´ë¥¼ ìí´, í ë¹ ì£¼ìì 그룹í ì°ì°ìë¡ ê´í¸ë¥¼ ì¶ê°íë©´ ìµìíì ìì ì¼ë¡ ìíí ì ììµëë¤.
const iterator = document.createNodeIterator(document, NodeFilter.SHOW_COMMENT);
let currentNode;
while ((currentNode = iterator.nextNode())) {
console.log(currentNode.textContent.trim());
}
ì¬ì¤ ì´ê²ì ESLintì no-cond-assignì 기본 구ì±ê³¼ Prettierìì ê°ì íë ì¤íì¼ì´ë¯ë¡, ì´ í¨í´ì ì주 ë§ì£¼í ê²ì
ëë¤.
ì´ë¤ ì¬ëë¤ì ì¡°ê±´ì ëª ìì ë¹êµë¡ ë°ê¾¸ê¸° ìí´ ë¹êµ ì°ì°ì를 ì¶ê°í ê²ì ê¶ì¥í ìë ììµëë¤.
while ((currentNode = iterator.nextNode()) !== null) {
ì´ í¨í´ì ìì±íë ë ë¤ë¥¸ ë°©ë²ë ììµëë¤.
while ((currentNode = iterator.nextNode()) && currentNode) {
ëë ìì while ë°ë³µë¬¸ì ì¬ì©íì§ ìë ë°©ë²ë ììµëë¤.
const iterator = document.createNodeIterator(document, NodeFilter.SHOW_COMMENT);
for (
let currentNode = iterator.nextNode();
currentNode;
currentNode = iterator.nextNode()
) {
console.log(currentNode.textContent.trim());
}
ë ìê° ì¡°ê±´ í¨í´ì¼ë¡ìì 문ì ì¶©ë¶í ìµìíë¤ë©´ ì´ë¬í 모ë ë³íì ëê°ì´ ì½ê¸° ì¬ì¸ ê²ì ëë¤. ê·¸ë ì§ ìì ê²½ì°, ë§ì§ë§ ííê° ê°ì¥ ì¥í©íì§ë§ ê°ì¥ ì½ê¸° ì¬ì¸ ê²ì ëë¤.
ëª ì¸ì
| Specification |
|---|
| ECMAScript® 2026 Language Specification > # sec-while-statement > |