JavaScript ã¯ã"event loop"ã«åºã¥ãåæå®è¡ã¢ãã«ãæã¡ã¾ãããã®ã¢ãã«ã¯ C è¨èªã Java ã®ãããªä»ã®è¨èªã®ã¢ãã«ã¨ããªãç°ãªã£ã¦ãã¾ãã
ã©ã³ã¿ã¤ã ã®æ¦è¦å¾ç¶ã®ã»ã¯ã·ã§ã³ã§ã¯ãçè«ã¢ãã«ã説æãã¾ããç¾ä»£ã® JavaScript ã¨ã³ã¸ã³ã¯ãè¨è¼ãããã»ãã³ãã£ã¯ã¹ã«å¾ã£ã¦å®è£ ãããã¾ãé«åº¦ã«æé©åããã¦ãã¾ãã
è¦è¦è¡¨ç¤º ã¹ã¿ãã¯é¢æ°å¼ã³åºãã¯ãã¬ã¼ã ã®ã¹ã¿ãã¯ãå½¢æãã¾ãã
function foo(b) {
var a = 10;
return a + b + 11;
}
function bar(x) {
var y = 3;
return foo(x * y);
}
console.log(bar(7)); // returns 42
bar
ãå¼ã³åºãã¨ãbar
ã®å¼æ°ã¨ãã¼ã«ã«å¤æ°ãå«ãã æåã®ãã¬ã¼ã ãçæããã¾ããbar
ãfoo
ãå¼ã³åºãã¨ãfoo
ã®å¼æ°ã¨ãã¼ã«ã«å¤æ°ãå«ãã ï¼çªç®ã®ãã¬ã¼ã ãçæãããæåã®ãã¬ã¼ã ã®ä¸ã«ããã·ã¥ããã¾ããfoo
ããè¿ãã¨ãå
é ã®ãã¬ã¼ã è¦ç´ ã¯ã¹ã¿ãã¯ãããããããã¾ã(bar
ã®ã³ã¼ã«ãã¬ã¼ã ã®ã¿ãæ®ãã¾ã)ãbar
ããè¿ãã¨ãã¹ã¿ãã¯ã¯ç©ºã«ãªãã¾ãã
ãªãã¸ã§ã¯ãã¯ãã¼ãã«å²ãå½ã¦ããã¦ãã¾ãããã¼ãã¯ãã¡ã¢ãªã®å¤§è¦æ¨¡ã§å¤§é¨åã¯æ§é åããã¦ããªãé åãæå³ããååã§ãã
ãã¥ã¼JavaScript ã©ã³ã¿ã¤ã ã¯ã¡ãã»ã¼ã¸ãã¥ã¼ãå«ãã§ãã¾ããã¡ãã»ã¼ã¸ãã¥ã¼ã¯ãå¦çãããã¡ãã»ã¼ã¸ã®ãªã¹ãã§ããåã¡ãã»ã¼ã¸ã«é¢æ°ãé¢é£ä»ãããã¦ãã¾ããã¹ã¿ãã¯ã空ã®ã¨ããã¡ãã»ã¼ã¸ããã¥ã¼ããåãåºãããå¦çããã¾ãããã®å¦çã¯ãé¢é£ãã颿°ã®å¼ã³åºã(ã¨æåã®ã¹ã¿ãã¯ãã¬ã¼ã ã®ä½æ)ã§æ§æããã¦ãã¾ããã¹ã¿ãã¯ãå度空ã«ãªãã¨ãã¡ãã»ã¼ã¸å¦çã¯çµäºãã¾ãã
ã¤ãã³ãã«ã¼ãevent loop
ã¨ããååã¯ããããä¸è¬çã«ã©ã®ããã«å®è£
ããããã«å¾ã£ã¦ä»ãããã¾ãããããã¯éå¸¸ãæ¬¡ã®ãã®ã«ä¼¼ã¦ãã¾ãã
while (queue.waitForMessage()) {
queue.processNextMessage();
}
queue.waitForMessage
ã¯ãããã®æç¹ã§ã¡ãã»ã¼ã¸ãåå¨ããªãã®ã§ããã°ãåæçã«ã¡ãã»ã¼ã¸ãå°çããã®ãå¾
ã¡ã¾ãã
ãã®ä»ã®ã¡ãã»ã¼ã¸ãå¦çãããåã«ãåã¡ãã»ã¼ã¸ã¯å®å ¨ã«å¦çããã¦ãã¾ãã 颿°ãå®è¡ããããã³ã«ããããæ¨ªåããããã¨ã¯ã§ãããä»ã®ã³ã¼ããå®è¡ãããåã«ãå®å ¨ã«å®è¡ããã¾ãï¼ããã³é¢æ°ãæä½ãããã¼ã¿ã夿´ãããã¨ãã§ããï¼ã¨ããäºå®ãå«ããããã°ã©ã ã«ã¤ãã¦æ¨è«ããã¨ãã«ããã¤ãã®ç´ æ´ãããç¹æ§ãæä¾ãã¦ãã¾ããä¾ãã°ããã㯠C ã¨ã¯ç°ãªãã¾ããã¨ããã®ã¯ã颿°ã¯ã¹ã¬ããã§å®è¡ããã¦ããå ´åãããã¯å¥ã®ã¹ã¬ããã§ããã¤ãã®ä»ã®ã³ã¼ããå®è¡ããã«ã¯ãä»»æã®æç¹ã§åæ¢ãããã¨ãã§ãã¾ãã
ãã®ã¢ãã«ã®æ¬ ç¹ã¯ãã¡ãã»ã¼ã¸ãå®äºããã¾ã§ã«æéãããããããå ´åã¯ãWeb ã¢ããªã±ã¼ã·ã§ã³ã¯ã¯ãªãã¯ãã¹ã¯ãã¼ã«ã®ãããªã¦ã¼ã¶ã¤ã³ã¿ã©ã¯ã·ã§ã³ãå¦çãããã¨ãã§ããªããã¨ã§ãããã©ã¦ã¶ã¼ã¯"ã¹ã¯ãªããã¯å®è¡ã«éå¸¸ã«æéãããã"ãã¤ã¢ãã°ãç¨ãã¦ããã軽æ¸ãã¾ãã追å¾ãããå§ãã¯ãã¡ãã»ã¼ã¸ãçãå¦çã«ããå¯è½ãªå ´åã«ã¯ãããã¤ãã®ã¡ãã»ã¼ã¸ã«ä¸ã¤ã®ã¡ãã»ã¼ã¸ãåã縮ãããã¨ã§ãã
ã¡ãã»ã¼ã¸ã®è¿½åWeb ãã©ã¦ã¶ã¼ã§ã¯ãã¡ãã»ã¼ã¸ã¯ãã¤ãã³ããçºçããããã«æ¥ç¶ããã¦ããã¤ãã³ããªã¹ãã¼ãããä»»æã®æéã«è¿½å ããã¾ããã¤ãã³ããªã¹ãã¼ããªãå ´åãã¤ãã³ãã¯å¤±ããã¾ããã ãããä»ã®ã¤ãã³ãã¨åæ§ã«ãã¯ãªãã¯ã¤ãã³ããã³ãã©ãæã¤è¦ç´ ãã¯ãªãã¯ããã¨ãã¡ãã»ã¼ã¸ã追å ããã¾ãã
setTimeout
ãå¼ã³åºãã¨ã2 çªç®ã®å¼æ°ã¨ãã¦æ¸¡ãããæéãçµéããå¾ãã¡ãã»ã¼ã¸ããã¥ã¼ã«è¿½å ããã¾ãããã¥ã¼ã«ä»ã®ã¡ãã»ã¼ã¸ããªãå ´åãã¡ãã»ã¼ã¸ã¯ããã«å¦çããã¾ããããããªãããã¡ãã»ã¼ã¸ãããå ´åãsetTimeout
ã¡ãã»ã¼ã¸ã¯ä»ã®ã¡ãã»ã¼ã¸ãå¦çããããã«å¾
æ©ããå¿
è¦ãããã¾ãããã®ãã第äºå¼æ°ã¯ãä¿è¨¼æéã§ã¯ãªããæå°ã®æéã示ãã¦ãã¾ãã
ã¦ã§ãã¯ã¼ã«ã¼ãã¯ãã¹ãªãªã¸ã³ã® iframe ã¯ãç¬èªã®ã¹ã¿ãã¯ããã¼ããããã³ã¡ãã»ã¼ã¸ãã¥ã¼ãããã¾ããäºã¤ã®ç°ãªãã©ã³ã¿ã¤ã ã®ã¿postMessage
ã¡ã½ããã«ãã£ã¦éä¿¡ã¡ãã»ã¼ã¸ãä»ãã¦éä¿¡ãããã¨ãã§ãã¾ããä»ã®ã©ã³ã¿ã¤ã ãmessage
ã¤ãã³ãããªãã¹ã³ããå ´åããã®ã¡ã½ããã¯ä»ã®ã©ã³ã¿ã¤ã ã«ã¡ãã»ã¼ã¸ã追å ãã¾ãã
ã¤ãã³ãã«ã¼ãã¢ãã«ã®é常ã«è峿·±ãç¹æ§ã¯ãä»ã®å¤ãã®è¨èªã¨ã¯ç°ãªããJavaScript ã¯æ±ºãã¦ãããã¯ããªããã¨ã§ããI/O ã®åãæ±ãã¯ãé常ãã¤ãã³ãã¨ã³ã¼ã«ããã¯ãä»ãã¦è¡ããã¾ãããã®ãããã¢ããªã±ã¼ã·ã§ã³ã¯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