- ÇöÀç À§Ä¡
- home > ÄÄÇ»ÅÍ¡¤ICT¡¤¾îÇÐ > ÄÄÇ»ÅÍ¡¤IT µµ¼ > À¥ÇÁ·Î±×·¡¹Ö > You Dont Know JS : this¿Í °´Ã¼ ÇÁ·ÎÅäŸÀÔ, ºñµ¿±â¿Í ¼º´É[ÇѺû¹Ìµð¾î]
ÀÚ¹Ù½ºÅ©¸³Æ®´Â À¥ ÃÊâ±â ½ÃÀýºÎÅÍ »ç¶÷µéÀÌ ´ëÈÇϵí À¥ ÄÜÅÙÃ÷¸¦ ¼ÒºñÇÒ ¼ö ÀÖ°Ô ÇØÁØ ±â¹Ý ±â¼úÀ̾ú´Ù. 20³â °¡±îÀÌ È帥 Áö±ÝÀº ¾öû³ ±Ô¸ð·Î ±â¼úÀû ¿ª·®ÀÌ ¼ºÀåÇÏ¿´°í, ¼¼°è¿¡¼ °¡Àå ³Î¸® »ç¿ëµÇ´Â ¼ÒÇÁÆ®¿þ¾î Ç÷§ÆûÀ̶ó ºÒ¸®´Â À¥ÀÇ ½ÉÀåºÎ¸¦ Çü¼ºÇÏ´Â ÇÙ½É ±â¼úÀÌ µÇ¾ú´Ù. ÀÚ¹Ù½ºÅ©¸³Æ®´Â óÀ½ ½ÃÀÛÇÏ°í ½ÇÇàÇϱⰡ °¡Àå ½¬¿î ¾ð¾îÁö¸¸, ´Ù¸¥ ¾ð¾îº¸´Ù ¿ÏÀüÈ÷ ¼÷´ÞÇÑ »ç¶÷Àº ÈξÀ Àû´Ù. C/C µîÀ¸·Î ¿ÏÀüÇÑ ÇÁ·Î±×·¥À» Â¥·Á¸é ¾ð¾î ÀÚü¸¦ ±íÀÌ ÀÖ°Ô ¾Ë°í ÀÖ¾î¾ß ÇÏÁö¸¸, ÀÚ¹Ù½ºÅ©¸³Æ®´Â ¾ð¾î Àüü ´É·Â Áß ÀϺθ¦ ¼ö¹Ú °ÑÇÓ±â Á¤µµ¸¸ ¾Ë°í »ç¿ëÇصµ À¢¸¸Å ¼ºñ½º°¡ °¡´ÉÇÑ ÇÁ·Î±×·¥À» ¸¸µé¾î³¾ ¼ö À־Ù. ¹Ù·Î ÀÌ ºÎºÐÀÌ ÀÚ¹Ù½ºÅ©¸³Æ®ÀÇ ¸ð¼øÀÌÀÚ ¾Æų·¹½º°ÇÀÌ°í, ÀÌ Ã¥¿¡¼ ´Ù·ç´Â ÁÖÁ¦À̱⵵ ÇÏ´Ù. ¡ºYou Don¡¯t Know JS¡» ½Ã¸®Áî´Â ÀÚ¹Ù½ºÅ©¸³Æ®ÀÇ ¸ðµç °Í, ±×Áß Æ¯È÷ Âø°¢Çϱ⠽±°í ÀÌÇØÇϱ⠾î·Á¿î ºÎºÐÀ» ±í°í öÀúÇÏ°Ô ÆÄ°íµç´Ù.
ÀúÀÚ: Ä«ÀÏ ½É½¼ (ÁöÀºÀÌ), ÀÌÀÏ¿õ (¿Å±äÀÌ)
PART I this¿Í °´Ã¼ ÇÁ·ÎÅäŸÀÔ
1Àåthis¶ó³ª ¹¹¶ó³ª
_1.1this¸¦ ¿Ö?
_1.2Çò°¥¸®´Â °Íµé
__1.2.1ÀÚ±â ÀÚ½Å
__1.2.2ÀÚ½ÅÀÇ ½ºÄÚÇÁ
_1.3this´Â ¹«¾ùÀΰ¡?
_1.4Á¤¸®Çϱâ
2Àåthis°¡ ÀÌ·± °Å·Î±º!
_2.1È£ÃâºÎ
_2.2´ÜÁö ±ÔÄ¢ÀÏ »Ó
__2.2.1±âº» ¹ÙÀεù
__2.2.2¾Ï½ÃÀû ¹ÙÀεù
__2.2.3¸í½ÃÀû ¹ÙÀεù
__2.2.4new ¹ÙÀεù
_2.3¸ðµç °Ç ¼ø¼°¡ ÀÖ´Â ¹ý
__2.3.1this È®Á¤ ±ÔÄ¢
_2.4¹ÙÀεù ¿¹¿Ü
__2.4.1this ¹«½Ã
__2.4.2°£Á¢ ·¹ÆÛ·±½º
__2.4.3¼ÒÇÁÆ® ¹ÙÀεù
_2.5¾îÈÖÀû this
_2.6Á¤¸®Çϱâ
3À尴ü
_3.1±¸¹®
_3.2ŸÀÔ
__3.2.1³»Àå °´Ã¼
_3.3³»¿ë
__3.3.1°è»êµÈ ÇÁ·ÎÆÛƼ¸í
__3.3.2ÇÁ·ÎÆÛƼ vs ¸Þ¼µå
__3.3.3¹è¿
__3.3.4°´Ã¼ º¹»ç
__3.3.5ÇÁ·ÎÆÛƼ ¼¼úÀÚ
__3.3.6ºÒº¯¼º
__3.3.7[[Get]]
__3.3.8[[Put]]
__3.3.9°ÔÅÍ¿Í ¼¼ÅÍ
__3.3.10Á¸Àç È®ÀÎ
_3.4¼øȸ
_3.5Á¤¸®Çϱâ
4ÀåŬ·¡½º¿Í °´Ã¼ÀÇ È¥ÇÕ
_4.1Ŭ·¡½º ÀÌ·Ð
__4.1.1Ŭ·¡½º µðÀÚÀÎ ÆÐÅÏ
__4.1.2ÀÚ¹Ù½ºÅ©¸³Æ® Ŭ·¡½º
_4.2Ŭ·¡½º ü°è
__4.2.1°ÇÃà
__4.2.2»ý¼ºÀÚ
_4.3Ŭ·¡½º »ó¼Ó
__4.3.1´ÙÇü¼º
__4.3.2´ÙÁß »ó¼Ó
_4.4¹Í½ºÀÎ
__4.4.1¸í½ÃÀû ¹Í½ºÀÎ
__4.4.2¾Ï½ÃÀû ¹Í½ºÀÎ
_4.5Á¤¸®Çϱâ
5Àå ÇÁ·ÎÅäŸÀÔ
_5.1[[Prototype]]
__5.1.1Object.prototype
__5.1.2ÇÁ·ÎÆÛƼ ¼¼Æðú °¡·ÁÁü
_5.2 Ŭ·¡½º
__5.2.1Ŭ·¡½º ÇÔ¼ö
__5.2.2»ý¼ºÀÚ
__5.2.3ü°è
_5.3ÇÁ·ÎÅäŸÀÔ »ó¼Ó
__5.3.1Ŭ·¡½º °ü°è Á¶»ç
_5.4°´Ã¼ ¸µÅ©
__5.4.1¸µÅ© »ý¼º
__5.4.2¸µÅ©´Â ´ëºñÃ¥?
_5.5Á¤¸®Çϱâ
6Àå ÀÛµ¿ À§ÀÓ
_6.1À§ÀÓ ÁöÇâ µðÀÚÀÎÀ¸·Î °¡´Â ±æ
__6.1.1Ŭ·¡½º ÀÌ·Ð
__6.1.2À§ÀÓ ÀÌ·Ð
__6.1.3¸àÅ» ¸ðµ¨ ºñ±³
_6.2Ŭ·¡½º vs °´Ã¼
__6.2.1À§Á¬ Ŭ·¡½º
__6.2.2À§Á¬ °´Ã¼ÀÇ À§ÀÓ
_6.3´õ °£´ÜÇÑ µðÀÚÀÎ
__6.3.1ŻŬ·¡½ºÈ
_6.4´õ ¸ÚÁø ±¸¹®
__6.4.1ºñ¾îÈÖÀû ½Äº°ÀÚ
_6.5ÀÎÆ®·Î½ºÆå¼Ç
_6.6Á¤¸®Çϱâ
PART II ºñµ¿±â¿Í ¼º´É
1Àåºñµ¿±â¼º: Áö±Ý°ú ³ªÁß
_1.1ÇÁ·Î±×·¥ µ¢ÀÌ
__1.1.1ºñµ¿±â ÄܼÖ
_1.2À̺¥Æ® ·çÇÁ
_1.3º´·Ä ½º·¹µù
__1.3.1¿ÏÀü-½ÇÇà
_1.4µ¿½Ã¼º
__1.4.1ºñ»óÈ£ ÀÛ¿ë
__1.4.2»óÈ£ ÀÛ¿ë
__1.4.3Çùµ¿
_1.5Àâ
_1.6¹® ¼ø¼
_1.7Á¤¸®Çϱâ
2ÀåÄݹé
_2.1¿¬¼Ó¼º
_2.2µÎ³ú´Â ¼øÂ÷ÀûÀÌ´Ù
__2.2.1½ÇÇà vs °èȹ
__2.2.2Áßø/¿¬¼âµÈ Äݹé
_2.3¹ÏÀ½¼º ¹®Á¦
__2.3.1´Ù¼¸ ¸¶¸® Äݹé À̾߱â
__2.3.2³²ÀÇ ÄÚµå»Ó¸¸ ¾Æ´Ï¶ó
_2.4ÄݹéÀ» ±¸Ç϶ó
_2.5Á¤¸®Çϱâ
3ÀåÇÁ¶ó¹Ì½º
_3.1ÇÁ¶ó¹Ì½º¶õ
__3.1.1¹Ì·§°ª
__3.1.2¿Ï·á À̺¥Æ®
_3.2µ¥³Êºí ´ö ŸÀÌÇÎ
_3.3ÇÁ¶ó¹Ì½º ¹ÏÀ½
__3.3.1³Ê¹« »¡¸® È£Ãâ
__3.3.2³Ê¹« ´Ê°Ô È£Ãâ
__3.3.3Çѹøµµ ÄݹéÀ» ¾È È£Ãâ
__3.3.4³Ê¹« °¡²û, ³Ê¹« Á¾Á¾ È£Ãâ
__3.3.5ÀÎÀÚ/ȯ°æ Àü´Þ ½ÇÆÐ
__3.3.6¿¡·¯/¿¹¿Ü »ïÅ°±â
__3.3.7¹Ì´õ¿î ÇÁ¶ó¹Ì½º?
__3.3.8¹ÏÀ½ Çü¼º
_3.4¿¬¼â È帧
__3.4.1¿ë¾î Á¤ÀÇ: ±Í°á, ÀÌ·ë, ¹ö¸²
_3.5¿¡·¯ ó¸®
__3.5.1Àý¸ÁÀÇ ±¸µ¢ÀÌ
__3.5.2ÀâÈ÷Áö ¾ÊÀº ¿¡·¯ ó¸®
__3.5.3¼º°øÀÇ ±¸µ¢ÀÌ
_3.6ÇÁ¶ó¹Ì½º ÆÐÅÏ
__3.6.1Promise.all([ ])
__3.6.2Promise.race([ ])
__3.6.3all([ ])/race([ ])ÀÇ º¯Çü
__3.6.4µ¿½Ã ¼øȸ
_3.7ÇÁ¶ó¹Ì½º API º¹½À
__3.7.1new Promise( ) »ý¼ºÀÚ
__3.7.2Promise.resolve( )¿Í Promise.reject( )
__3.7.3then( )°ú catch( )
__3.7.4Promise.all([ ])°ú Promise.race([ ])
_3.8ÇÁ¶ó¹Ì½º ÇÑ°è
__3.8.1½ÃÄö½º ¿¡·¯ ó¸®
__3.8.2´ÜÀÏ°ª
__3.8.3´ÜÀÏ ±Í°á
__3.8.4Ÿ¼º
__3.8.5ÇÁ¶ó¹Ì½º´Â Ãë¼Ò ºÒ°¡
__3.8.6ÇÁ¶ó¹Ì½º ¼º´É
_3.9Á¤¸®Çϱâ
4ÀåÁ¦³Ê·¹ÀÌÅÍ
_4.1¿ÏÀü-½ÇÇàÀ» ŸÆÄÇÏ´Ù
__4.1.1ÀԷ°ú Ãâ·Â
__4.1.2´ÙÁß ÀÌÅÍ·¹ÀÌÅÍ
_4.2°ªÀ» Á¦³Ê·¹ÀÌÅ͸µ
__4.2.1Á¦Á¶±â¿Í ÀÌÅÍ·¹ÀÌÅÍ
__4.2.2ÀÌÅÍ·¯ºí
__4.2.3Á¦³Ê·¹ÀÌÅÍ ÀÌÅÍ·¹ÀÌÅÍ
_4.3Á¦³Ê·¹ÀÌÅ͸¦ ºñµ¿±âÀûÀ¸·Î ¼øȸ
__4.3.1µ¿±âÀû ¿¡·¯ ó¸®
_4.4Á¦³Ê·¹ÀÌÅÍ ÇÁ¶ó¹Ì½º
__4.4.1ÇÁ¶ó¹Ì½º-ÀνÄÇü Á¦³Ê·¹ÀÌÅÍ ½ÇÇà±â
__4.4.2Á¦³Ê·¹ÀÌÅÍ¿¡¼ÀÇ ÇÁ¶ó¹Ì½º µ¿½Ã¼º
_4.5Á¦³Ê·¹ÀÌÅÍ À§ÀÓ
__4.5.1¿Ö À§ÀÓÀ»?
__4.5.2¸Þ½ÃÁö À§ÀÓ
__4.5.3ºñµ¿±â¼ºÀ» À§ÀÓ
__4.5.4À§ÀÓ ¡®Àç±Í¡¯
_4.6Á¦³Ê·¹ÀÌÅÍ µ¿½Ã¼º
_4.7½éÅ©
__4.7.1s/promise/thunk/
_4.8ES6 ÀÌÀü Á¦³Ê·¹ÀÌÅÍ
__4.8.1¼öµ¿ º¯È¯
__4.8.2ÀÚµ¿ º¯È¯
_4.9Á¤¸®Çϱâ
CHAPTER 5 ÇÁ·Î±×·¥ ¼º´É
_5.1À¥ ¿öÄ¿
__5.1.1¿öÄ¿ ȯ°æ
__5.1.2µ¥ÀÌÅÍ Àü¼Û
__5.1.3°øÀ¯ ¿öÄ¿
__5.1.4À¥ ¿öÄ¿ Æú¸®ÇÊ
_5.2SIMD
_5.3asm.js
__5.3.1asm.js ÃÖÀûÈ
__5.3.2asm.js ¸ðµâ
_5.4Á¤¸®Çϱâ
6Àå º¥Ä¡¸¶Å·°ú Æ©´×
_6.1º¥Ä¡¸¶Å·
__6.1.1¹Ýº¹
__6.1.2Benchmark.js
_6.2ÄÜÅؽºÆ®°¡ Á¦ÀÏ
__6.2.1¿£Áø ÃÖÀûÈ
_6.3jsPerf.com
__6.3.1Á¤»ó Å×½ºÆ®
_6.4ÁÁÀº Å×½ºÆ®¸¦ ÀÛ¼ºÇÏ·Á¸é
_6.5¹Ì½Ã¼º´É
__6.5.1¶È°°Àº ¿£ÁøÀº ¾ø´Ù
__6.5.2Å« ±×¸²
_6.6²¿¸® È£Ãâ ÃÖÀûÈ(TCO)
_6.7Á¤¸®Çϱâ
ºÎ·Ï A ES6 class
_ºÎ·Ï A.1 class
_ºÎ·Ï A.2 classÀÇ ÇÔÁ¤
_ºÎ·Ï A.3 Á¤Àû¿¡¼ µ¿ÀûÀ¸·Î?
_ºÎ·Ï A.4 Á¤¸®Çϱâ
ºÎ·Ï B asynquence ¶óÀ̺귯¸®
_ºÎ·Ï B.1 ½ÃÄö½º, Ãß»óÈ ¼³°è
_ºÎ·Ï B.2 asynquence API
_ºÎ·Ï B.3 °ª°ú ¿¡·¯ ½ÃÄö½º
_ºÎ·Ï B.4 ÇÁ¶ó¹Ì½º¿Í Äݹé
_ºÎ·Ï B.5 ÀÌÅÍ·¯ºí ½ÃÄö½º
_ºÎ·Ï B.6 Á¦³Ê·¹ÀÌÅÍ ½ÇÇàÇϱâ
_ºÎ·Ï B.7 Á¤¸®Çϱâ
ºÎ·Ï C °í±Þ ºñµ¿±â ÆÐÅÏ
_ºÎ·Ï C.1 ÀÌÅÍ·¯ºí ½ÃÄö½º
_ºÎ·Ï C.2 À̺¥Æ® ¹ÝÀÀÇü
_ºÎ·Ï C.3 Á¦³Ê·¹ÀÌÅÍ ÄÚ·çƾ
_ºÎ·Ï C.4 ¼øÂ÷Àû ÇÁ·Î¼¼½º Åë½Å(CSP)
_ºÎ·Ï C.5 Á¤¸®Çϱâ
1Àåthis¶ó³ª ¹¹¶ó³ª
_1.1this¸¦ ¿Ö?
_1.2Çò°¥¸®´Â °Íµé
__1.2.1ÀÚ±â ÀÚ½Å
__1.2.2ÀÚ½ÅÀÇ ½ºÄÚÇÁ
_1.3this´Â ¹«¾ùÀΰ¡?
_1.4Á¤¸®Çϱâ
2Àåthis°¡ ÀÌ·± °Å·Î±º!
_2.1È£ÃâºÎ
_2.2´ÜÁö ±ÔÄ¢ÀÏ »Ó
__2.2.1±âº» ¹ÙÀεù
__2.2.2¾Ï½ÃÀû ¹ÙÀεù
__2.2.3¸í½ÃÀû ¹ÙÀεù
__2.2.4new ¹ÙÀεù
_2.3¸ðµç °Ç ¼ø¼°¡ ÀÖ´Â ¹ý
__2.3.1this È®Á¤ ±ÔÄ¢
_2.4¹ÙÀεù ¿¹¿Ü
__2.4.1this ¹«½Ã
__2.4.2°£Á¢ ·¹ÆÛ·±½º
__2.4.3¼ÒÇÁÆ® ¹ÙÀεù
_2.5¾îÈÖÀû this
_2.6Á¤¸®Çϱâ
3À尴ü
_3.1±¸¹®
_3.2ŸÀÔ
__3.2.1³»Àå °´Ã¼
_3.3³»¿ë
__3.3.1°è»êµÈ ÇÁ·ÎÆÛƼ¸í
__3.3.2ÇÁ·ÎÆÛƼ vs ¸Þ¼µå
__3.3.3¹è¿
__3.3.4°´Ã¼ º¹»ç
__3.3.5ÇÁ·ÎÆÛƼ ¼¼úÀÚ
__3.3.6ºÒº¯¼º
__3.3.7[[Get]]
__3.3.8[[Put]]
__3.3.9°ÔÅÍ¿Í ¼¼ÅÍ
__3.3.10Á¸Àç È®ÀÎ
_3.4¼øȸ
_3.5Á¤¸®Çϱâ
4ÀåŬ·¡½º¿Í °´Ã¼ÀÇ È¥ÇÕ
_4.1Ŭ·¡½º ÀÌ·Ð
__4.1.1Ŭ·¡½º µðÀÚÀÎ ÆÐÅÏ
__4.1.2ÀÚ¹Ù½ºÅ©¸³Æ® Ŭ·¡½º
_4.2Ŭ·¡½º ü°è
__4.2.1°ÇÃà
__4.2.2»ý¼ºÀÚ
_4.3Ŭ·¡½º »ó¼Ó
__4.3.1´ÙÇü¼º
__4.3.2´ÙÁß »ó¼Ó
_4.4¹Í½ºÀÎ
__4.4.1¸í½ÃÀû ¹Í½ºÀÎ
__4.4.2¾Ï½ÃÀû ¹Í½ºÀÎ
_4.5Á¤¸®Çϱâ
5Àå ÇÁ·ÎÅäŸÀÔ
_5.1[[Prototype]]
__5.1.1Object.prototype
__5.1.2ÇÁ·ÎÆÛƼ ¼¼Æðú °¡·ÁÁü
_5.2 Ŭ·¡½º
__5.2.1Ŭ·¡½º ÇÔ¼ö
__5.2.2»ý¼ºÀÚ
__5.2.3ü°è
_5.3ÇÁ·ÎÅäŸÀÔ »ó¼Ó
__5.3.1Ŭ·¡½º °ü°è Á¶»ç
_5.4°´Ã¼ ¸µÅ©
__5.4.1¸µÅ© »ý¼º
__5.4.2¸µÅ©´Â ´ëºñÃ¥?
_5.5Á¤¸®Çϱâ
6Àå ÀÛµ¿ À§ÀÓ
_6.1À§ÀÓ ÁöÇâ µðÀÚÀÎÀ¸·Î °¡´Â ±æ
__6.1.1Ŭ·¡½º ÀÌ·Ð
__6.1.2À§ÀÓ ÀÌ·Ð
__6.1.3¸àÅ» ¸ðµ¨ ºñ±³
_6.2Ŭ·¡½º vs °´Ã¼
__6.2.1À§Á¬ Ŭ·¡½º
__6.2.2À§Á¬ °´Ã¼ÀÇ À§ÀÓ
_6.3´õ °£´ÜÇÑ µðÀÚÀÎ
__6.3.1ŻŬ·¡½ºÈ
_6.4´õ ¸ÚÁø ±¸¹®
__6.4.1ºñ¾îÈÖÀû ½Äº°ÀÚ
_6.5ÀÎÆ®·Î½ºÆå¼Ç
_6.6Á¤¸®Çϱâ
PART II ºñµ¿±â¿Í ¼º´É
1Àåºñµ¿±â¼º: Áö±Ý°ú ³ªÁß
_1.1ÇÁ·Î±×·¥ µ¢ÀÌ
__1.1.1ºñµ¿±â ÄܼÖ
_1.2À̺¥Æ® ·çÇÁ
_1.3º´·Ä ½º·¹µù
__1.3.1¿ÏÀü-½ÇÇà
_1.4µ¿½Ã¼º
__1.4.1ºñ»óÈ£ ÀÛ¿ë
__1.4.2»óÈ£ ÀÛ¿ë
__1.4.3Çùµ¿
_1.5Àâ
_1.6¹® ¼ø¼
_1.7Á¤¸®Çϱâ
2ÀåÄݹé
_2.1¿¬¼Ó¼º
_2.2µÎ³ú´Â ¼øÂ÷ÀûÀÌ´Ù
__2.2.1½ÇÇà vs °èȹ
__2.2.2Áßø/¿¬¼âµÈ Äݹé
_2.3¹ÏÀ½¼º ¹®Á¦
__2.3.1´Ù¼¸ ¸¶¸® Äݹé À̾߱â
__2.3.2³²ÀÇ ÄÚµå»Ó¸¸ ¾Æ´Ï¶ó
_2.4ÄݹéÀ» ±¸Ç϶ó
_2.5Á¤¸®Çϱâ
3ÀåÇÁ¶ó¹Ì½º
_3.1ÇÁ¶ó¹Ì½º¶õ
__3.1.1¹Ì·§°ª
__3.1.2¿Ï·á À̺¥Æ®
_3.2µ¥³Êºí ´ö ŸÀÌÇÎ
_3.3ÇÁ¶ó¹Ì½º ¹ÏÀ½
__3.3.1³Ê¹« »¡¸® È£Ãâ
__3.3.2³Ê¹« ´Ê°Ô È£Ãâ
__3.3.3Çѹøµµ ÄݹéÀ» ¾È È£Ãâ
__3.3.4³Ê¹« °¡²û, ³Ê¹« Á¾Á¾ È£Ãâ
__3.3.5ÀÎÀÚ/ȯ°æ Àü´Þ ½ÇÆÐ
__3.3.6¿¡·¯/¿¹¿Ü »ïÅ°±â
__3.3.7¹Ì´õ¿î ÇÁ¶ó¹Ì½º?
__3.3.8¹ÏÀ½ Çü¼º
_3.4¿¬¼â È帧
__3.4.1¿ë¾î Á¤ÀÇ: ±Í°á, ÀÌ·ë, ¹ö¸²
_3.5¿¡·¯ ó¸®
__3.5.1Àý¸ÁÀÇ ±¸µ¢ÀÌ
__3.5.2ÀâÈ÷Áö ¾ÊÀº ¿¡·¯ ó¸®
__3.5.3¼º°øÀÇ ±¸µ¢ÀÌ
_3.6ÇÁ¶ó¹Ì½º ÆÐÅÏ
__3.6.1Promise.all([ ])
__3.6.2Promise.race([ ])
__3.6.3all([ ])/race([ ])ÀÇ º¯Çü
__3.6.4µ¿½Ã ¼øȸ
_3.7ÇÁ¶ó¹Ì½º API º¹½À
__3.7.1new Promise( ) »ý¼ºÀÚ
__3.7.2Promise.resolve( )¿Í Promise.reject( )
__3.7.3then( )°ú catch( )
__3.7.4Promise.all([ ])°ú Promise.race([ ])
_3.8ÇÁ¶ó¹Ì½º ÇÑ°è
__3.8.1½ÃÄö½º ¿¡·¯ ó¸®
__3.8.2´ÜÀÏ°ª
__3.8.3´ÜÀÏ ±Í°á
__3.8.4Ÿ¼º
__3.8.5ÇÁ¶ó¹Ì½º´Â Ãë¼Ò ºÒ°¡
__3.8.6ÇÁ¶ó¹Ì½º ¼º´É
_3.9Á¤¸®Çϱâ
4ÀåÁ¦³Ê·¹ÀÌÅÍ
_4.1¿ÏÀü-½ÇÇàÀ» ŸÆÄÇÏ´Ù
__4.1.1ÀԷ°ú Ãâ·Â
__4.1.2´ÙÁß ÀÌÅÍ·¹ÀÌÅÍ
_4.2°ªÀ» Á¦³Ê·¹ÀÌÅ͸µ
__4.2.1Á¦Á¶±â¿Í ÀÌÅÍ·¹ÀÌÅÍ
__4.2.2ÀÌÅÍ·¯ºí
__4.2.3Á¦³Ê·¹ÀÌÅÍ ÀÌÅÍ·¹ÀÌÅÍ
_4.3Á¦³Ê·¹ÀÌÅ͸¦ ºñµ¿±âÀûÀ¸·Î ¼øȸ
__4.3.1µ¿±âÀû ¿¡·¯ ó¸®
_4.4Á¦³Ê·¹ÀÌÅÍ ÇÁ¶ó¹Ì½º
__4.4.1ÇÁ¶ó¹Ì½º-ÀνÄÇü Á¦³Ê·¹ÀÌÅÍ ½ÇÇà±â
__4.4.2Á¦³Ê·¹ÀÌÅÍ¿¡¼ÀÇ ÇÁ¶ó¹Ì½º µ¿½Ã¼º
_4.5Á¦³Ê·¹ÀÌÅÍ À§ÀÓ
__4.5.1¿Ö À§ÀÓÀ»?
__4.5.2¸Þ½ÃÁö À§ÀÓ
__4.5.3ºñµ¿±â¼ºÀ» À§ÀÓ
__4.5.4À§ÀÓ ¡®Àç±Í¡¯
_4.6Á¦³Ê·¹ÀÌÅÍ µ¿½Ã¼º
_4.7½éÅ©
__4.7.1s/promise/thunk/
_4.8ES6 ÀÌÀü Á¦³Ê·¹ÀÌÅÍ
__4.8.1¼öµ¿ º¯È¯
__4.8.2ÀÚµ¿ º¯È¯
_4.9Á¤¸®Çϱâ
CHAPTER 5 ÇÁ·Î±×·¥ ¼º´É
_5.1À¥ ¿öÄ¿
__5.1.1¿öÄ¿ ȯ°æ
__5.1.2µ¥ÀÌÅÍ Àü¼Û
__5.1.3°øÀ¯ ¿öÄ¿
__5.1.4À¥ ¿öÄ¿ Æú¸®ÇÊ
_5.2SIMD
_5.3asm.js
__5.3.1asm.js ÃÖÀûÈ
__5.3.2asm.js ¸ðµâ
_5.4Á¤¸®Çϱâ
6Àå º¥Ä¡¸¶Å·°ú Æ©´×
_6.1º¥Ä¡¸¶Å·
__6.1.1¹Ýº¹
__6.1.2Benchmark.js
_6.2ÄÜÅؽºÆ®°¡ Á¦ÀÏ
__6.2.1¿£Áø ÃÖÀûÈ
_6.3jsPerf.com
__6.3.1Á¤»ó Å×½ºÆ®
_6.4ÁÁÀº Å×½ºÆ®¸¦ ÀÛ¼ºÇÏ·Á¸é
_6.5¹Ì½Ã¼º´É
__6.5.1¶È°°Àº ¿£ÁøÀº ¾ø´Ù
__6.5.2Å« ±×¸²
_6.6²¿¸® È£Ãâ ÃÖÀûÈ(TCO)
_6.7Á¤¸®Çϱâ
ºÎ·Ï A ES6 class
_ºÎ·Ï A.1 class
_ºÎ·Ï A.2 classÀÇ ÇÔÁ¤
_ºÎ·Ï A.3 Á¤Àû¿¡¼ µ¿ÀûÀ¸·Î?
_ºÎ·Ï A.4 Á¤¸®Çϱâ
ºÎ·Ï B asynquence ¶óÀ̺귯¸®
_ºÎ·Ï B.1 ½ÃÄö½º, Ãß»óÈ ¼³°è
_ºÎ·Ï B.2 asynquence API
_ºÎ·Ï B.3 °ª°ú ¿¡·¯ ½ÃÄö½º
_ºÎ·Ï B.4 ÇÁ¶ó¹Ì½º¿Í Äݹé
_ºÎ·Ï B.5 ÀÌÅÍ·¯ºí ½ÃÄö½º
_ºÎ·Ï B.6 Á¦³Ê·¹ÀÌÅÍ ½ÇÇàÇϱâ
_ºÎ·Ï B.7 Á¤¸®Çϱâ
ºÎ·Ï C °í±Þ ºñµ¿±â ÆÐÅÏ
_ºÎ·Ï C.1 ÀÌÅÍ·¯ºí ½ÃÄö½º
_ºÎ·Ï C.2 À̺¥Æ® ¹ÝÀÀÇü
_ºÎ·Ï C.3 Á¦³Ê·¹ÀÌÅÍ ÄÚ·çƾ
_ºÎ·Ï C.4 ¼øÂ÷Àû ÇÁ·Î¼¼½º Åë½Å(CSP)
_ºÎ·Ï C.5 Á¤¸®Çϱâ
¡ºYou Don¡¯t Know JS¡» ½Ã¸®Áî µµ¼
¡¤ You Don¡¯t Know JS: ŸÀÔ°ú ¹®¹ý, ½ºÄÚÇÁ¿Í Ŭ·ÎÀú °Á¦º¯È¯ÀÇ À¯ÀÇ »çÇ×°ú »ý¼ºÀڷμÀÇ ³×ÀÌƼºê µî ÀÚ¹Ù½ºÅ©¸³Æ®ÀÇ Å¸ÀÔ°ú ¹®¹ý¿¡ °üÇÑ ¸ðÈ£ÇÑ °³³äÀ» ÀúÀÚ Æ¯À¯ÀÇ ¹®Ã¼·Î ¸íÄèÈ÷ ¼³¸íÇÑ´Ù. ÀÚ¹Ù½ºÅ©¸³Æ®ÀÇ ÇÙ½ÉÀÎ ½ºÄÚÇÁ¿Í Ŭ·ÎÀú¿¡ ´ëÇÑ ÀúÀÚÀÇ ¼³¸íÀ» Àо¸é ÀÚ¹Ù½ºÅ©¸³Æ®ÀÇ ÀÛµ¿ ¿ø¸®°¡ ¸Ó¸´¼Ó¿¡ ±×·ÁÁú °ÍÀÌ´Ù.
¡¤ You Don¡¯t Know JS: this¿Í °´Ã¼ ÇÁ·ÎÅäŸÀÔ, ºñµ¿±â¿Í ¼º´É È£ÃâºÎ¿¡ µû¶ó this°¡ ¾î¶»°Ô ¹ÙÀεåµÇ´ÂÁö, Á¦³Ê·¹ÀÌÅÍ·Î ºñµ¿±â È帧À» ¾î¶»°Ô Ç¥...
´õº¸±â