JavaScriptì ë°íì 모ë¸ì ì½ëì ì¤í, ì´ë²¤í¸ì ìì§ê³¼ ì²ë¦¬, íì ë기 ì¤ì¸ íì ìì ì ì²ë¦¬íë ì´ë²¤í¸ 루íì 기ë°íê³ ìì¼ë©°, C ëë Java ë± ë¤ë¥¸ ì¸ì´ê° ê°ì§ 모ë¸ê³¼ë ìë¹í ë¤ë¦ ëë¤.
ë°íì ê°ë ì¬ê¸°ìë ì´ë¡ ì ì¸ ëª¨ë¸ë§ì ì¤ëª í©ëë¤. íëì ì¸ JavaScript ìì§ì ìëì ê°ë ì 구ííê³ ê³ ëë¡ ìµì íí©ëë¤.
ìê°ì íí ì¤íí¨ìì í¸ì¶ë¤ì 'íë ì' ì¤íì íì±í©ëë¤.
function foo(b) {
const a = 10;
return a + b + 11;
}
function bar(x) {
const y = 3;
return foo(x * y);
}
const baz = bar(7); // 42를 bazì í ë¹
ì ì½ëì ì¤í ììë ë¤ìê³¼ ê°ìµëë¤.
bar
를 í¸ì¶í ë, bar
ì ì¸ìì ì§ì ë³ìì ëí 참조를 í¬í¨íë 첫 ë²ì§¸ íë ìì´ ìì±ë©ëë¤.bar
ê° foo
를 í¸ì¶í ë, foo
ì ì¸ìì ì§ì ë³ì를 í¬í¨íë ë ë²ì§¸ íë ìì´ ìì±ëì´ ì²« ë²ì§¸ íë ìì ìë¡ ì¶ê°ë©ëë¤.foo
ê° ë°íëë©´, 맨 ìì íë ì ìì를 ì¤í ë°ì¼ë¡ 꺼ë
ëë¤(bar
í¸ì¶ íë ìë§ ë¨ê² ë©ëë¤).bar
ê° ë°íëë©´, ì¤íì´ ë¹ì´ìê² ë©ëë¤.ì¸ìì ì§ì ë³ìë ì¤í ë°ê¹¥ì ì ì¥ëë¯ë¡, ë°ê¹¥ í¨ìê° ë°íë íìë ê³ì ì¡´ì¬í ì ììì ì ìíì¸ì. ì¤ì²© í¨ììì ì§ì ë³ìì ì ê·¼í ì ìë ì´ì ê° ì´ê²ì ëë¤.
íê°ì²´ë íì í ë¹ë©ëë¤. íì ë¨ìí ë©ëª¨ë¦¬ì í° (ê·¸ë¦¬ê³ ëë¶ë¶ 구조íëì§ ìì) ììì ì§ì¹íë ì©ì´ì ëë¤.
íJavaScript ë°íìì ë©ìì§ í, ì¦ ì²ë¦¬í ë©ìì§ì ë기ì´ì ì¬ì©í©ëë¤. ê°ê°ì ë©ìì§ìë ë©ìì§ë¥¼ ì²ë¦¬í기 ìí í¨ìê° ì°ê²°ëì´ ììµëë¤.
ì´ë²¤í¸ 루íì ìì ìì ì, ë°íìì ë기ì´ìì ê°ì¥ ì¤ëë ë©ìì§ë¶í° íìì êº¼ë´ ì²ë¦¬í기 ììí©ëë¤. ì´ë¥¼ ìí´ ë°íìì êº¼ë¸ ë©ìì§ë¥¼ 매ê°ë³ìë¡, ë©ìì§ì ì°ê²°ë í¨ì를 í¸ì¶í©ëë¤. í¨ì를 í¸ì¶íë©´ í´ë¹ í¨ìê° ì¬ì©í ìë¡ì´ ì¤í íë ìì´ ìì±ë©ëë¤.
í¨ì ì²ë¦¬ë ì¤íì´ ë¤ì í ë¹ ëê¹ì§ ê³ìë©ëë¤. ê·¸ í, íì ë©ìì§ê° ë¨ììì¼ë©´ ê°ì ë°©ë²ì¼ë¡ ì²ë¦¬ë¥¼ ê³ì ì§íí©ëë¤.
ì´ë²¤í¸ 루íì´ë²¤í¸ 루íë ì´ ê¸°ë¥ì 구íí ë ë³´íµ ì¬ì©íë ë°©ììì ê·¸ ì´ë¦ì ì»ìì¼ë©°, ëëµ ë¤ìê³¼ ê°ì ííì ëë¤.
while (queue.waitForMessage()) {
queue.processNextMessage();
}
queue.waitForMessage()
í¨ìë íì¬ ì²ë¦¬í ì ìë ë©ìì§ê° ì¡´ì¬íì§ ìì¼ë©´ ìë¡ì´ ë©ìì§ê° ëì°©í ëê¹ì§ ë기ì ì¼ë¡ ë기í©ëë¤.
ê° ë©ìì§ì ì²ë¦¬ë ë¤ë¥¸ ë©ìì§ì ì²ë¦¬ë¥¼ ììí기 ì ì ìì í ëë©ëë¤.
ì´ í¹ì§ì íë¡ê·¸ë¨ì ëìì ì¶ë¡ í ë ì ì©í í¹ì±ì ì ê³µí©ëë¤. ì¤íí í¨ìê° ë¤ë¥¸ ìì ì ìí´ ì ì ë ì¼ì´ ìê³ , ë¤ë¥¸ 모ë ì½ëì ì¤íë³´ë¤ ì°ì í´ì ê°ì ë³ê²½í ì ìì¼ë©°, ì¤ë¨ëë ì¼ ìì´ ìì í ëë기 ë문ì ëë¤. ë°ë©´, ì를 ë¤ì´ C ì¸ì´ììë, ì¤ë ëìì ì¤í ì¤ì¸ í¨ì를 ë°íì ìì¤í ì´ ììë¡ ë©ì¶ê³ ë¤ë¥¸ ì¤ë ëì ë¤ë¥¸ ì½ë를 먼ì ì¤íí ì ììµëë¤.
ì´ ëª¨ë¸ì ë¨ì ì, ë§ì½ ë©ìì§ë¥¼ ì²ë¦¬í ë ë무 ì¤ë 걸리면 ì¹ ì í리ì¼ì´ì ì´ í´ë¦ì´ë ì¤í¬ë¡¤ê³¼ ê°ì ì¬ì©ì ìí¸ìì©ì ì²ë¦¬í ì ìë¤ë ì ì ëë¤. ë¸ë¼ì°ì ë "ì¤í¬ë¦½í¸ ìëµ ìì" ëíìì를 íìí´ì ì´ ë¬¸ì 를 ìíí©ëë¤. ê°ë°ìë¡ì ì¬ì©í ì ìë ì¢ì ë°©ë²ì¼ë¡ë ë©ìì§ ì²ë¦¬ë¥¼ ê°ë³ê² ì ì§íê³ , ê°ë¥íë¤ë©´ íëì ë©ìì§ë¥¼ ì¬ë¬ ê°ë¡ ëëë ê²ì ëë¤.
ë©ìì§ ì¶ê°íê¸°ì¹ ë¸ë¼ì°ì ììë, ìì ê¸°ê° ë¶ì°©ë ì´ë²¤í¸ê° ë°ìíë©´ ìë¡ì´ ë©ìì§ê° ì¶ê°ë©ëë¤. ìì ê¸°ê° ìì¼ë©´, ì´ë²¤í¸ë ì ì¤ë©ëë¤. ì¦, í´ë¦ ì´ë²¤í¸ ì²ë¦¬ê¸°ê° ë¶ì ìì를 í´ë¦íë©´ ë©ìì§ê° ìë¡ ì¶ê°ëë ìì ëë¤. ë¤ë¥¸ ì´ë²¤í¸ì ëí´ìë ë§ì°¬ê°ì§ì ëë¤.
setTimeout
í¨ìë ë ê°ì 매ê°ë³ì를 ê°ì§ëë¤. 첫 ë²ì§¸ë íì ì¶ê°í ë©ìì§, ë ë²ì§¸ë ìê° ê°(ì í ì¬í, 기본 ê° 0
)ì
ëë¤. ìê° ê°ì ë©ìì§ë¥¼ íì ì¶ê°í기ê¹ì§ 기ë¤ë¦´ (ìµì) ì§ì° ìê°ì ëíë
ëë¤. íì ë¤ë¥¸ ë©ìì§ê° ìê³ ì¤íì´ ë¹ì´ìë¤ë©´ setTimeout
ì ë©ìì§ë ëë ì´ ì§í ì¦ì ì²ë¦¬ë©ëë¤. ê·¸ë¬ë, ë¤ë¥¸ ë©ìì§ê° ì¡´ì¬íë¤ë©´ setTimeout
ì ìì ë©ìì§ì ì²ë¦¬ë¥¼ 기ë¤ë ¤ì¼ í©ëë¤. ê·¸ëì ë ë²ì§¸ ê°ì ì íí ì§ì°ìê°ì´ ìë, 'ìµì' ì§ì° ìê°ë§ ëíë
ëë¤.
ë¤ìì setTimeout
ì´ íì´ë¨¸ ë§ë£ ì§í ì¦ì ì¤íëì§ ìë ìì ì
ëë¤.
const seconds = new Date().getTime() / 1000;
setTimeout(function () {
// "2"를 ì¶ë ¥, ì¦ 500ë°ë¦¬ì´ê° ì§ë í ì¦ì ì¤íë ê²ì´ ìëë¼ë ê²
console.log(`${new Date().getTime() / 1000 - seconds}ì´ í ì¤íë©ëë¤.`);
}, 500);
while (true) {
if (new Date().getTime() / 1000 - seconds >= 2) {
console.log("ì¢ìì, 2ì´ê° ë°ë³µíìµëë¤.");
break;
}
}
0ì ì§ì° ìê°
0ì ì§ì° ìê°ì ì§ì íë ê²ì´ ì½ë°±ì 0ë°ë¦¬ì´ íì í¸ì¶íë¤ë ë»ì ìëëë¤. setTimeout
ì ì§ì° ìê°ì 0
ë°ë¦¬ì´ë¥¼ ì§ì íê³ í¸ì¶íëë¼ë ì½ë°± í¨ìë ì¦ì ì¤íëì§ ììµëë¤.
ì¤ì ì¤í ìì ì íìì ë기 ì¤ì¸ ìì
ì ìì ë°ë¼ ë¤ë¦
ëë¤. ìë ìì ììë 'íë²í ë©ìì§'
ê° ì½ë°±ì í¸ì¶ë³´ë¤ ìì ì½ìì 기ë¡ë ê²ì
ëë¤. ì§ì° ìê°ì ìì²ì ì²ë¦¬í기 ì ì ë기í 'ìµì' ìê°ì´ê³ , ë³´ì¥ ìê°ì´ ìë기 ë문ì
ëë¤.
setTimeout
ì í¹ì ì§ì° ìê°ì ì§ì íëë¼ë, íìì ë기 ì¤ì¸ 모ë ë©ìì§ì ì²ë¦¬ë 기ë¤ë ¤ì¼ í©ëë¤.
(function () {
console.log("ìì");
setTimeout(function cb() {
console.log("ì½ë°± 1: ì½ë°± ë©ìì§");
}); // has a default time value of 0
console.log("íë²í ë©ìì§");
setTimeout(function cb1() {
console.log("ì½ë°± 2: ì½ë°± ë©ìì§");
}, 0);
console.log("ì¢
ë£");
})();
(() => {
console.log("ìì");
setTimeout(() => {
console.log("ì½ë°± 1: ì½ë°± ë©ìì§");
}); // 기본ì ì¼ë¡ ìê° ê°ì 0ì¼ë¡ ê°ì§ëë¤.
console.log("this is just a message");
setTimeout(() => {
console.log("ì½ë°± 2: ì½ë°± ë©ìì§");
}, 0);
console.log("this is the end");
})();
// "ìì"
// "íë²í ë©ìì§"
// "ì¢
ë£"
// "ì½ë°± 1: ì½ë°± ë©ìì§"
// "ì½ë°± 2: ì½ë°± ë©ìì§"
ë¤ìì ë°íì ê° íµì
ì¹ ì커ë êµì°¨ ì¶ì² iframe
ì ìì ë§ì ì¤í, í, ë©ìì§ í를 ê°ì§ëë¤. ìë¡ ë¤ë¥¸ ë ë°íìì postMessage
ë©ìë를 íµí´ ë©ìì§ë¥¼ ë³´ë´ë ë°©ìì¼ë¡ë§ ìë¡ íµì í ì ììµëë¤. ìëê° message
ì´ë²¤í¸ë¥¼ ìì íê³ ìì ë, postMessage
ë ìë ë°íìì ë©ìì§ë¥¼ ì¶ê°í©ëë¤.
ë¤ë¥¸ ë§ì ì¸ì´ì ë¬ë¦¬ JavaScriptë ì ë ë¸ë¡í¹ ì°ì°ì íì§ ììµëë¤. ë ¼ ë¸ë¡í¹ì ì´ë²¤í¸ 루í 모ë¸ì ë¬´ì² í¥ë¯¸ë¡ì´ í¹ì§ì¼ë¡, ëë¶ë¶ì ì ì¶ë ¥ ì²ë¦¬ê° ì´ë²¤í¸ì ì½ë°±ì íµí´ ìíëë¯ë¡, ì í리ì¼ì´ì ì´ IndexedDB ì§ìë XHR ìì²ì ë°íì ë기 ì¤ì´ëë¼ë, ì¬ì í ì¬ì©ì ì ë ¥ ë± ë¤ë¥¸ ê²ë¤ì ì²ë¦¬í ì ìë ê²ì ëë¤.
alert
ì´ë ë기ì XHRê³¼ ê°ì ë ê±°ì ìì¸ê° ì¡´ì¬í긴 íì§ë§ ì¬ì©íì§ ìë ê²ì´ ì¢ìµëë¤. ë¬¼ë¡ ìì¸ì ëí ìì¸ë ì¡°ì¬íì¸ì(ê·¸ë¬ë ì´ë° ìì¸ë 구íì²´ì ë²ê·¸ì¸ ê²½ì°ê° ë§ìµëë¤).
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4