[4th Seoul Workshop]JavaScript¿Í ÀÀ¿ë ±â¼ú

À̰游
¼­¿ï½Ã ³ë¿ø±¸ ¿ù°èµ¿
±¤¿î ´ëÇб³ ³×Æ®¿÷ ¿¬±¸È¸
E-mail : psycho@explore.kwangwoon.ac.kr
http://www.kwangwoon.ac.kr/~psycho/

Abstract:

ÀÌ °­ÀÇ¿¡¼­´Â ÀÚ¹Ù½ºÅ©¸³Æ®¿¡ ´ëÇÑ ¹Ù¸¥ ÀÌÇØ¿Í ÀÚ¹Ù¿ÍÀÇ °ü°è ±×¸®°í °£´ÜÇÑ ¹®¹ýÀ» ¾Ë¾Æ º¸°í ÀÚ¹Ù ½ºÅ©¸³Æ®ÀÇ ÀÀ¿ë ±â¼úÀ» ¿¹¸¦ ÅëÇØ ¾Ë¾Æ º¸±â·Î ÇÑ´Ù.

Keywords:JavaScript,LiveConnect,Cookie

1. ¼­·Ð


À¥ÀÌ Àαâ ÀÖ´Â ¿äÀÎÁß °¡Àå Å« ¿äÀÎÀº ¿©·¯ °¡Áö ¸ÖƼ¹Ìµð¾î ¿ä¼Ò¸¦ °¡Áø ÀÎÅÍ¾×Æ¼ ºêÇÑ ÆäÀÌÁö¸¦ ³×Æ®¿÷»ó¿¡¼­ Á¦°ø Ç߱⠶§¹®À̶ó°í ÇÒ ¼ö ÀÖ´Ù. ±×¸®°í ±×´ÙÀ½ ¿äÀÎÀ» ²ÅÀ¸ ¶ó¸é ±×·¯ÇÑ ÆäÀÌÁö¸¦ ÀÛ¼ºÇϱⰡ ½±´Ù¶ó´Â Á¡ÀÌ´Ù. Áï ½±°í Æí¸®ÇÑ HTMLÀÌ Áö±ÝÀÇ À¥À» °¡´ÉÇÏ°Ô ÇØÁØ ÀÏµî °ø½Å À̶ó´Â Á¡Àº ´©±¸³ª ÀÎÁ¤ ÇÏ´Â »ç½ÇÀÌ´Ù. ÇÏÁö¸¸ HTML¸¸À¸·Î´Â ÀÎÅÍ¾×Æ¼ºêÇÑ ÆäÀÌÁö¸¦ ¸¸µé±â¿¡´Â ÇѰ迡 ºüÁö°í ¸¸´Ù. ±×·¡¼­ ÀÚ¹Ù³ª Ç÷¯±×ÀÎµî ¿©·¯ ±â¼úÀÌ »ý±â°Ô µÈ °ÍÀÌ°í Æ¯È÷ ÀÚ¹Ù´Â Á¤±³ÇÏ°í °­·ÂÇÒ »Ó ¾Æ´Ï¶ó Ç÷§Æû¿¡ °ü°è ¾øÀÌ µ¿ÀÛ ÇϹǷΠÀ¥ ȯ°æ¿¡ ¾È¼º ¸ÂÃã °ÝÀÎ ¾ð¾îÀÌ´Ù. ÇÏÁö¸¸ ÀÚ¹Ù³ª Ç÷¯±×ÀÎ ¸¸À¸·Ð ±âÁ¸ÀÇ HTML °ú À¯´ë°¨ÀÌ ´À²¸ÁöÁö ¾Ê´Â´Ù. Áï HTML°ú JAVA¸¦ Á»´õ °¡±õ°Ô ÇØÁÙ ´Ù¸¥ ½Ã½ºÅÛÀÌÇÊ¿ä ÇÏ´Ù.

1.1 °£´ÜÇÑ ¿ª»ç¿Í Ư¡

Netscape »ç´Â Netvigator 2.0 ¹öÀü¿¡ ÀÚ¹Ù¸¦ Ãß°¡ ÇÒ ¶§ ÀÚ¹Ù¿Í HTML »çÀÌ¿¡ Á¸Àç ÇÏ¸ç µÎ ±â¼úÀ» À̾îÁÙ ¼ö ÀÖ´Â °ÍÀÌ ÇÊ¿ä ÇÏ´Ù´Â °ÍÀ» ´À³¢°í µÎ °³ÀÇ ±â¼úÀ» À̾îÁÖ´Â °­·ÂÇÏ °í »õ·Î¿î ½ºÅ©¸³Æ® ¾ð¾î¸¦ °³¹ß Çß´Ù. óÀ½¿¡´Â Live Script¶ó´Â À̸§À¸·Î ¹ßÇ¥ µÇ¾úÀ¸³ª Sun °ú Netscape»ç´Â ÆÀÀ» ±¸¼º ÇÏ¿© Live Script°¡ À¥±â¹ÝÀÇ Ç¥ÁØ ½ºÅ©¸³Æ®°¡ µÇµµ·Ï ±¸ ¹®À» ÀÚ¹Ù¿Í À¯»çÇÏ°Ô ¹Ù²Ù°í À̸§µµ JavaScript ¶ó°í ¹Ù²Ù¾ú´Ù. Netscape2.0¿¡¼­ Áö¿ø ÇÏ´Â JavaScript´Â 1.0 ¹öÀüÀ̰í À̸¦ °³¼±ÇÏ°í ¾à¼Ó µÇ¾ú´ø ÀÚ¹Ù¿ÍÀÇ ¿¬°è¸¦ Áö¿øÇÏ´Â JavaScript 1.1 ¹öÀüÀ» Netscape 3.0ºÎÅÍ Áö¿ø Çϱ⠽ÃÀÛ Çß´Ù. ¶Ç MicroSoft»ç´Â Internet Explore 3.0ºÎÅÍ JavaScript 1.0À» Áö¿ø Çϰí ÀÖ´Ù.


JAVA SCRIPT

JAVA

½ÇÇà¹æ¹ý

ºê¶ó¿ìÀú¿¡¼­ ÇØ¼®µÊ

(½ºÅ©¸³Æ® ¾ð¾î)

¼­¹ö¿¡¼­ ÄÄÆÄÀÏµÈ byte code¸¦ ºÒ·¯ Ŭ¶óÀ̾ðÆ®(ºê¶ó¿ìÀú)¿¡¼­ ÇØ¼®µÊ

¼º°Ý

Object-Base ¾ð¾î (Built-in Object¸¸ Áö¿ø Ŭ·¡½º »ó¼ÓµîÀÇ °³³ä¾øÀ½)

Object-Oriented ¾ð¾î

ÇüÅÂ

HTML ÆÄÀϳ»¿¡ °°ÀÌ ±â¼ú

HTMLÆÄÀÏ¿¡ ÀÛÀº °ø°£À» ¾ò¾î ¼öÇà

º¯¼ö

º¯¼öÇüÀ» ¹Ì¸® Á¤ÇÒ Çʿ䰡 ¾øÀ½.

¹Ì¸® º¯¼öÇüÀ» Á¤ÇؾßÇÔ.

º¸¾È

secure (html¿¡ °°ÀÌ ¼öÇà µÇ¹Ç·Î)

secure (local file system¿¡ write¸¦ ¸øÇϹǷÎ)

Ç¥.1 Java ¿Í JavaScript °£ÀÇ ºñ±³



Á¤¸®ÇÏÀÚ¸é Javascript´Â ½±°í °³¹æÀûÀ̸ç HTML°ú ÀÚ¹Ù »çÀÌÀÇ °´Ã¼¿Í ÀÚ¿øÀ» ÀÌ ¾îÁÙ Ç÷§Æû µ¶¸³ÀûÀÎ ½ºÅ©¸³Æ® ¾ð¾îÀÌ´Ù. ÀÚ¹Ù ¾ð¾î°¡ ÁÖ·Î ÇÁ·Î±×·¡¸Óµé¿¡ ÀÇÇØ ¾ÖÇø´À» ¸¸µé±â À§ÇØ »ç¿ë µÇ´Â ¹Ý¸é ÀÚ¹Ù ½ºÅ©¸³Æ®´Â CGIÇÁ·Î±×·¡¸Ó³ª HTML ÀÛ¼ºÀÚµéÀÌ ÆäÀÌÁö °£ÀÇ »óÈ£ ÀÛ¿ë°ú ÆûÀÇ Á¦¾î¸¦ À§ÇØ »ç¿ë µÉ ¼ö ÀÖ°í ÀÚ¹Ù ÇÁ·Î±×·¡¸Ó¸¦ À§ÇØ ÀÚ¹Ù¿Í HTMLÀÌ »óÈ£ º¸¿ÏÀûÀ¸·Î ÅëÇÕ µÇµµ·Ï µðÀÚÀÎ µÇ¾ú´Ù. ±× Áõ°Å·Î Netscape Navigator 3.0 ÀÇ JavaScript 1.1¿¡¼­´Â Live Connect ¶ó´Â ±â´ÉÀ» Áö¿ø Çϴµ¥ ÀÌ´Â ÀÚ¹Ù¿Í ÀÚ¹Ù½ºÅ©¸³Æ® ±×¸®°í Plug-in °£ÀÇ »óÈ£ ÀÛ¿ëÀ» Áö¿ø ÇÑ´Ù. ÀÌ´Â Live Connect¸¦ ¼³¸í ÇÒ ¶§ ÀÚ¼¼È÷ ¼³¸í Çϵµ·Ï ÇϰڴÙ.

*JavaScript Ȱ¿ë ºÐ¾ß

1. HTML FormÀÇ °ªÀ» °¡°øÇϰųª °Ë»çÇÏ¿© ¼­¹ö ÂÊ¿¡ º¸³¾¶§(CGI¿Í ¿¬µ¿)

2. »ç¿ëÀÚÀÇ ÀÔ·ÂÀ» Á¦¾îÇÏ°í ½ÍÀ» ¶§

3. ºê¶ó¿ìÀú³»ÀÇ ¿©·¯°¡Áö ±â´ÉÀ» Á¶ÀýÇÏ°í ½ÍÀ» ¶§

4. »ç¿ëÀÚ¿¡°Ô ¸Þ¼¼Áö¸¦ º¸³»°í ½ÍÀ» ¶§ (°æ°í³ª È®ÀÎ)

5. Cookie¸¦ ÀÌ¿ëÇÑ ÆäÀÌÁö °£ÀÇ data À̵¿

6. Window¿Í ÇÁ·¹ÀÓÀÇ »ý¼º ¹× Á¦¾î

7. Java ¿ÍÀÇ ¿¬µ¿

8. ±×¿ÜÀÇ ¿©·¯ ´Ù¸¥ ºÐ¾ß

*ÇÊ¿äÇÑ Software

¿ì¼± ±âº»ÀûÀ¸·Î Netscape°¡ ÀÖ¾î¾ß ÇÏ¸ç ½ºÅ©¸³Æ®ÀÇ ÀÛ¼ºÀ» À§ÇÑ ÅØ½ºÆ® ¿¡µðÅͳª ±âÁ¸ÀÇ HTML¿¡µðÅͰ¡ ÀÖÀ¸¸é µÈ´Ù. ¶Ç Netscape Gold¹öÀü¿¡¼­´Â ÀÚ¹Ù½ºÅ©¸³Æ®¸¦ È¿À²Àû À¸·Î ©¼ö ÀÖ´Ù°í ÇÏÁö¸¸ Çѱ۹®Á¦°¡ ÀÖÀ¸¹Ç·Î »ç¿ë ÇÒ ¶§ ÁÖÀÇ Çϱ⠹ٶõ´Ù. ¶Ç º¼·£µåÀÇ intrabuilder , ¸¶ÀÌÅ©·Î ¼ÒÇÁÆ®ÀÇ ActiveX Control Padµî¿¡¼­ JavaScript¸¦ Áö¿ø ÇϹǷΠÀÌ ·± ¼ÒÇÁÆ® ¿þ¾î¸¦ »ç¿ë ÇÏ¸é ´õ ÆíÇÏ°Ô ÀÛ¼º ÇÒ ¼ö ÀÖ´Ù.

*Html ¹®¼­¿¡ JavaScript ±¸°Ü ³Ö±â

´ÙÀ½Àº JavaScript°¡ µé¾î°£ HTML¹®¼­ÀÇ ¿¹ÀÌ´Ù.

<html>
<head>
<script language=JavaScript>
<!-- Begin of JavaScript
document.write("This is JavaScript<br>");
// End of Script -->
</script>
</head>
<body bgcolor=white>
This is HTML<br>
<script language=JavaScript>
<!-- Begin of JavaScript
document.write("JavaScript is crazy language");
// End of Script -->
</script>

</body>
</html>






´ÙÀ½Àº À§ ÆÄÀÏÀÇ ½ÇÇà °á°ú ÀÌ´Ù.


[±×¸² 1]

Áï JavaScript´Â <Script language=JavaScript>¶ó´Â Tag ·Î ½ÃÀÛ ÇØ </Script>¶ó´Â Tag·Î ³¡³²À» ¾Ë ¼ö ÀÖ´Ù. "<!--" °ú "-->"Àº JavaScript¸¦ Áö¿ø ÇÏÁö ¾Ê´Â ºê¶ó¿ìÀú¸¦ À§ÇÑ ¹è·ÁÀÌ´Ù. document.write´Â HTML¹®¼­¿¡ ÀÎÀÚ¸¦ ¾²¶ó´Â method(¾î¶² °´Ã¼¾î ¼ÓÇÑ ÇÔ¼ö, C++ÀÇ Member Function)ÀÌ´Ù. °á°ú¸¦ º¸¸é Head ºÎºÐ¿¡ ¾²¿©Áø JavaScript °¡ °¡Àå ¸ÕÀú ¼öÇà µÇ °í ±×ÈÄ Body ºÎºÐ¿¡¼­´Â ¾²¿©Áø ¼ø¼­´ë·Î HTMLÀ̵ç JavaScriptµç »ó°ü¾øÀÌ ½ÇÇàµÊÀ» ¾Ë ¼ö ÀÖ´Ù. JavaScript ÀÇ ½ÇÇàÀº ¸Å¿ì °£´Ü ÇÏ´Ù. JavaScript°¡ ÀÖ´Â HTML¹®¼­¸¦ Àб⸸ ÇØÁÖ¸é µÇ ´Â °ÍÀÌ´Ù. ±×·¯¸é ºê¶ó¿ìÀú¿¡¼­ ÀÚµ¿À¸·Î ½ÇÇà ÇØ ÁØ´Ù. ÀÌ´Â ÄÄÆÄÀÏ °úÁ¤ÀÌ ¾øÀ½À¸·Î °³¹ß °úÁ¤ÀÌ ¸¹ÀÌ Âª¾ÆÁö°Ô µÈ´Ù. ¶Ç ½ÇÇà ÇÏ´Â ÄÄÇ»ÅͰ¡ ³×Æ®¿÷¿¡ ¿¬°á µÉ ÇÊ¿ä ¾øÀÌ ·ÎÄà ÆÄÀÏ ¸¸À¸·Îµµ ½ÇÇà ÇÒ ¼ö ÀÖ´Ù. ¶Ç ½ÇÇàÁß ¿¡·¯ ¸Þ½ÃÁö°¡ Áï°¢Áï°¢ ³ª¿À±â ¶§¹®¿¡ µð¹ö±ëµîÀÇ ÀÛ¾÷µµ ´Ù¸¥¾ð¾î¿¡ ºñÇØ ±²ÀåÈ÷ ¼ö¿ù ÇÏ´Ù.

2. ±âº» ¹®¹ý

2.1 °ª(Values)

º¯¼ö(Variables)´Â ´ÙÀ½°ú °°Àº °ªÀ» °¡Áú ¼ö ÀÖ´Ù.

Çüº¯È¯

À§¿Í °°ÀÌ ÇϳªÀÇ º¯¼ö I·Î µÎ °³ÀÇ ¼­·Î ´Ù¸¥ Çü(data type)À¸·Î ¼±¾ðÀ» ÇØµµ ¿¡·¯°¡ ³ªÁö ¾Ê´Â´Ù. ÀÚ¹Ù½ºÅ©¸³Æ®´Â Çüº¯È¯¿¡ ´ëÇØ ±×¸® ¾ö°ÝÇÏÁö ¾Ê´Ù. ¶Ç ÇÑ ¾Æ·¡¿Í °°ÀÌ ¹®ÀÚ¿­ °ú ¼ýÀÚ¿Í °°ÀÌ ¼­·Î ´Ù¸¥ ÇüŸ¦ ´õÇÒ ¼öµµ ÀÖ´Ù.

x¿¡´Â "The answer is 42"°¡ ÀúÀåµÇ°í y¿¡´Â "42 is the answer."°¡ µé¾î°¡°Ô µÈ´Ù.

ÀÚ¹Ù½ºÅ©¸³Æ®´Â ¹®ÀÚ¿­°ú ¼ýÀÚÇüÀ» ´Ù·ê¼ö ÀÖ´Â ¸î °³ÀÇ Æ¯¼öÇÑ ÇÔ¼ö¸¦ Á¦°øÇÑ´Ù. ¼ý ÀÚÇüÀ¸·Î º¯È¯ÇØÁÖ°í °ªÀ» ±¸ÇØÁÖ´Â evalÀ̶ó´Â ÇÔ¼ö, ¹®ÀÚ¿­À» Á¤¼ö°ªÀ¸·Î º¯È¯½ÃÄÑÁÖ´Â parseInt ÇÔ¼ö ±×¸®°í ¹®ÀÚ¿­À» ºÎµ¿¼Ò¼öÁ¡(Floating Point)ÇüÀ¸·Î º¯È¯ÇØÁÖ´Â parseFloat ÇÔ ¼ö°¡ ÀÖ´Ù.

2.2 º¯¼ö¸í(Variables Name)

ÀÚ¹Ù½ºÅ©¸³Æ®ÀÇ ½Äº°ÀÚ³ª À̸§Àº ¹Ýµå½Ã ¹®ÀÚ¿Í ¹ØÁÙ("_")·Î ½ÃÀÛÇØ¾ß ÇÑ´Ù. ±× ¿Ü¿¡´Â ¼ýÀÚ(0-9)°¡ ¿Ã ¼öµµ ÀÖ´Ù. ¹®ÀÚ´Â ¾ËÆÄºª ´ë¹®ÀÚ(A-Z)¿Í ¼Ò¹®ÀÚ(a-z)ÀÌ´Ù. ÀÚ¹Ù½ºÅ© ¸³Æ®´Â ´ë¼Ò¹®ÀÚ ±¸º°(Case Sensitive)À» ÇÑ´Ù. ¾Æ·¡´Â ¿Ã¹Ù¸¥ º¯¼ö¸íÀÇ ¿¹ÀÌ´Ù.

º¯¼ö´Â ¾îµð¿¡¼­³ª ¼±¾ðµÉ ¼ö ÀÖÀ¸¸ç, Àü¿ª º¯¼ö(global)·Î ¼±¾ðµÇ¾úÀ» °æ¿ì¿¡´Â ±× º¯ ¼ö¸¦ ÇöÀç ºÒ·ÁÁø ÀÚ¹Ù½ºÅ©¸³Æ® ¾îµð¼­³ª ¾µ ¼ö ÀÖ°í Áö¿ªº¯¼ö(local)ÀÏ °æ¿ì¿¡´Â º¯¼ö°¡ ¼Ó ÇÑ ÇÔ¼ö ³»¿¡¼­¸¸ »ç¿ëÇÒ ¼ö ÀÖ´Ù.

µû¶ó¼­ Àü¿ªº¯¼ö´Â ÇÔ¼ö ¿ÜºÎ¿¡¼­ ¼±¾ðÇϰí, Áö¿ªº¯¼ö´Â ÇÔ¼ö³»¿¡¼­ ¼±¾ðÇÑ´Ù.

Literals

Literals´Â ÀÚ¹Ù½ºÅ©¸³Æ®¿¡¼­ÀÇ °ªÀ» Ç¥ÇöÇÏ´Â ¹æ¹ýÀÌ´Ù.

Á¤¼öÇü(Integers)

Á¤¼öÇüÀº 10Áø¼ö(decimal), 16Áø¼ö(hexadecimal)³ª 8Áø¼ö(octal)ÀÇ Çü½ÄÀ¸·Î Ç¥ÇöÇÒ ¼ö ÀÖ´Ù.

ºÎµ¿¼Ò¼öÁ¡Çü(Floating Point)

º¸Åë ½Ç¼öÇüÀ¸·Î ¼Ò¼öÁ¡ÀÇ °ªÀ» °®´Â´Ù. Áö¼öÇü(exponent)ÀÇ Çü½ÄÀ» °¡Áú ¼öµµ ÀÖ´Ù. Àû¾îµµ ÇϳªÀÌ»óÀÇ ¼ýÀÚ¿Í ¼Ò¼öÁ¡À̳ª Áö¼öÇüÀ» °¡Á®¾ß ÇÑ´Ù. ´ÙÀ½Àº ±× ¿¹ÀÌ´Ù.

ºÎ¿ïÇü(Boolean)

Âü(true)°ú °ÅÁþ(false)ÀÇ µÎ°¡Áö °ªÀ» °¡Áø´Ù.

¹®ÀÚ¿­Çü(String)

¹®ÀÚ¿­ÇüÀº null°ªÀ̳ª °ãµû¿ÈÇ¥(")³ª µû¿ÈÇ¥(')·Î µÑ·¯½×ÀÎ ¹®ÀÚµéÀ» °¡Áø´Ù.

Ư¼ö ¹®ÀÚ(Special Characters)

´ÙÀ½°ú °°Àº Ư¼ö ¹®ÀÚµéÀ» ¹®ÀÚ¿­³»¿¡¼­ »ç¿ëÇÒ ¼ö ÀÖ´Ù.





¶ÇÇÑ Æ¯¼ö¹®ÀÚ¿Í °°Àº Ç¥Çö¹æ¹ýÀ¸·Î Escaping ¹®ÀÚÇüµµ ¾µ ¼ö ÀÖ´Ù. °¡·É ¹®ÀÚ¿­³»¿¡ ¼­ °ãµû¿ÈÇ¥¸¦ Ç¥ÇöÇÏ°í ½ÍÀ» ¶§¿¡´Â ´ÙÀ½°ú °°Àº ÇüÅ·Π»ç¿ëÇÒ ¼ö ÀÖ´Ù.


2.3 Ç¥Çö½Ä(Expression)°ú ¿¬»êÀÚ(Operators)

2.3.1 Ç¥Çö½Ä(Expression)

Ç¥Çö½ÄÀº º¸Åë, ¹®ÀÚÇüµé°ú º¯¼ö, ¿¬»êÀÚ ±×¸®°í ´Ü¼øÇÑ °ªÀ¸·Î °è»êµÈ Ç¥Çö½ÄÀ¸·Î ±¸ ¼ºµÈ´Ù. ±× °ªÀº ¼ýÀÚÇü, ¹®ÀÚ¿­Çü, ³í¸®Çü °ªÀ¸·Î ±¸¼ºµÈ´Ù. °³³äÀûÀ¸·Î µÎ°¡Áö ÇüÅÂÀÇ Ç¥Çö ½ÄÀÌ Àִµ¥, °ªÀ» º¯¼ö¿¡ ÁöÁ¤ÇÏ´Â °Í°ú ´Ü¼øÈ÷ ±× °ªÀ» °®´Â °ÍÀÌ ÀÖ´Ù. ´ÙÀ½ ¿¹¸¦ º¸¸é

À§¿Í °°ÀÌ x¿¡ 7À̶ó´Â °ªÀ» ³ÖÀº Ç¥Çö½ÄÀ¸·Î ±× ÀÚü°¡ ¹Ù·Î 7·Î ³ªÅ¸³»¾î Áø´Ù. ¹Ý ¸é¿¡ ´ÙÀ½°ú °°ÀÌ

°ªÀ» ÇÒ´çÇÏÁö´Â ¾Ê¾ÒÁö¸¸ ¿¬»êÀÚ »ç¿ëÇÑ Ç¥Çö½ÄÀ¸·Î ´Ü¼øÈ÷ 7À» ³ªÅ¸³»°í ÀÖ´Ù. ¿¬»ê ÀÚ´Â ÀÌ·± Ç¥Çö½Ä¿¡¼­ ´Ü¼øÈ÷ ¿¬»êÀڷμ­¸¸ »ç¿ëÇÏ¿´´Ù.

ÀÚ¹Ù½ºÅ©¸³Æ®´Â ´ÙÀ½°ú °°Àº Á¾·ùÀÇ Ç¥Çö½ÄÀ» »ç¿ëÇÒ ¼ö ÀÖ´Ù.

°ªÀÌ ÇÒ´çµÇÁö ¾ÊÀº º¯¼ö´Â Á¤Àǰ¡ ³»·ÁÁöÁö ¾Ê±â ¶§¹®¿¡ ¿¡·¯¸¦ ¹ß»ý½ÃŲ´Ù.

Á¶°Ç Ç¥Çö½Ä(Conditional Expressions)

Á¶°Ç Ç¥Çö½ÄÀº ´ÙÀ½°ú °°ÀÌ »ç¿ëÇÑ´Ù.

¸¸¾à Á¶°ÇÀÌ true¶ó¸é, val1À» ³ªÅ¸³»°í, ¾Æ´Ï¸é val2¸¦ ³ªÅ¸³½´Ù. ¿¹¸¦ µé¸é

À̰ÍÀº age¶ó´Â º¯¼öÀÇ °ªÀÌ 18ÀÌ»óÀ̸é status¿¡´Â "adult"ÀÇ °ªÀÌ ÇÒ´çµÇ°í, ¾Æ´Ï¸é "minor"ÀÇ °ªÀÌ ÇÒ´çµÈ´Ù.

´ëÀÔ ¿¬»êÀÚ(Assignment Operators)

´ëÀÔ ¿¬»êÀÚ¿¡´Â ¾Æ·¡¿Í °°Àº ¿¬»êÀÚµéÀÌ ÀÖ´Ù.

´ëÀÔ¿¬»êÀÚ´Â ¿ÞÂÊÀÇ ¿¬»ê¼ö¿¡ ¿À¸¥ÂÊ ¿¬»ê¼öÀÇ °ªÀ» ´ëÀÔÇÑ´Ù. ¾Æ·¡´Â x¿¡ y¸¦ ´ëÀÔÇÑ ¿¹ÀÌ´Ù.

³ª¸ÓÁö ¿¬»êÀÚ´Â ±âº»ÀûÀÎ »ê¼ú¿¬»êÀÚ¸¦ Ãà¼ÒÇÑ ÇüÅÂÀÌ´Ù. ´ÙÀ½À» »ìÆìº¸ÀÚ.

ºñÆ®´ÜÀ§ ¿¬»êÀÚ¸¦ ÀÌ¿ëÇÑ ´ëÀÔ ¿¬»êÀÚµéÀÌ Àִµ¥, ¾Æ·¡¿Í °°´Ù.


2.3.2 ¿¬»êÀÚ(Operators)

ÀÚ¹Ù½ºÅ©¸³Æ®¿¡´Â »ê¼ú, ¹®ÀÚ¿­, ³í¸® ¿¬»êÀÚ°¡ ÀÖ´Ù. ¿¬»ê½ÄÀÌ µÎ °³°¡ ÇÊ¿äÇÑ binary ¿¬»êÀÚ¿Í ¿¬»ê½ÄÀÌ ÇϳªÀÎ unary ¿¬»êÀÚ°¡ ÀÖ´Ù.

»ê¼ú ¿¬»êÀÚ(Arithmetic Operators)


ºñÆ®´ÜÀ§ ¿¬»êÀÚ

ºñÆ®´ÜÀ§ Shift ¿¬»êÀÚ

³í¸® ¿¬»êÀÚ(Logical Operators)

ºñ±³ ¿¬»êÀÚ(Comparison Operators)

´ÙÀ½°ú °°Àº ºñ±³ ¿¬»êÀÚ°¡ ÀÖ´Ù.


¹®ÀÚ¿­ ¿¬»êÀÚ(String Operators)

¹®ÀÚ¿­³¢¸® ´õÇÒ ¼ö ÀÖ´Ù. "my " + "string" ´Â "my string"¿Í °°À¸¸ç mystring += "bet"Àº mystringº¯¼ö¿¡ "bet"¶ó´Â °ªÀ» ´õÇØÁØ´Ù.


¿¬»êÀÚ ¿ì¼±¼øÀ§(Operator Precedence)

¾Æ·¡·Î °¥¼ö·Ï ¿ì¼±¼øÀ§°¡ ³ô´Ù.

            comma , 
    
            assignment = += -= *= /= %= <<= >>= >>>= &= ^= |= 
    
            conditional ?: 
    
            logical-or || 
            logical-and && 
    
            bitwise-or | 
            bitwise-xor ^ 
            bitwise-and & 
    
            equality == != 
    
            relational < <= > >= 
            bitwise shift << >> >>> 
    
            addition/subtraction + -
            multiply/divide * / % 
            negation/increment ! ~ - ++ -- 
            call, member () [] 
    




2.3.3 ±âº» ±¸¹® (Basic Statment)

Á¶°Ç¹®

if ... else

¹Ý¸ñ¹®

for , while , break , continue

°´Ã¼ °ü·Ã ¹®

for...in , new , this , with

ÁÖ¼®¹®

// , /*...*/


Á¶°Ç¹®

Á¶°Ç¹®Àº ¾î¶² ³í¸®ÀûÀÎ Á¶°Ç¿¡ µû¶ó ¾î¶²¹®ÀåÀ» ¼öÇà ÇÒ°ÍÀΰ¡¸¦ °áÁ¤ÇÏ°Ô ÇØÁÖ´Â ¹®ÀåÀÌ´Ù.

* If ( Á¶°Ç ) {

¹®Àå1

} [ else { ¹®Àå2 } ]

Á¶°ÇÀÌ ¸Â´Ù¸é ¹®Àå1À» ¼öÇà ÇÏ°í Æ²¸®´Ù¸é ¹®Àå2¸¦ ¼öÇà ÇÑ´Ù.

 
    ¿¹) 

function checkData (){

if (document.form1.threeChar.value.length == 3) {

return true}

else {

alert("Enter exactly three characters. " + document.form1.threeChar.value + " is not valid.")

return false} }























¹Ýº¹¹®(loop ststment)

ƯÁ¤ÇÑ ¹®ÀåÀ» ¾î¶² Á¶°ÇÀ̳ª ƯÁ¤ Ƚ¼ö ¸¸Å­ ¿©·¯¹ø »ç¿ë ÇÒ ¶§ ¹Ýº¹¹®À» ¾²°Ô µÈ´Ù. ÀÚ¹Ù½ºÅ©¸³Æ®¿¡¼­´Â for ¹®°ú while¹®À» Áö¿øÇØÁØ´Ù. ¶Ç continue¿Í break¹®À¸·Î ¹Ýº¹¹®À» Á¦¾îÇÑ´Ù. ¶Ç´Ù¸¥ ¹Ýº¹¹®À¸·Î for ... inÀÌ ÀÖÀ¸³ª ÆíÀÇ»ó °´Ã¼ °ü·Ã¹®À¸·Î ºÐ·ù ÇÏ¿´´Ù.

* for ( Á¶°Ç°ªÀÇ ÃʱâÈ­ ; Á¶°Ç ; Á¶°Ç°ªÀÇ Áõ°¨ ) {

¹Ýº¹ÇÒ ¹®Àå

}

¿¹ )

<SCRIPT language=JavaScript>

function howMany(selectObject) {

var numberSelected=0

for (i=0; i < selectObject.options.length; i++) {

if (selectObject.options[i].selected==true)

numberSelected++

}

return numberSelected

}

</SCRIPT>

<FORM NAME="selectForm">

<P><B>Choose some music types, then click the button below:</B>

<BR><SELECT NAME="musicTypes" MULTIPLE>

<OPTION SELECTED> R&B

<OPTION> Jazz

<OPTION> Blues

<OPTION> New Age

<OPTION> Classical

<OPTION> Opera

</SELECT>

<P><INPUT TYPE="button" VALUE="How many are selected?"

onClick="alert ( 'Number of options selected: ' + howMany(document.selectForm.musicTypes))">

</FORM>



* While ( Á¶°Ç ) {

¹Ýº¹ÇÒ ¹®Àå

}

¿¹)

n = 0

x = 0

while( n < 3 ) {

n ++;

x += n;

}




* break : while À̳ª for¹® ¾È¿¡¼­ »ç¿ëµÇ¸ç ¹Ýº¹¹®ÀÇ ¹Ýº¹À» ¸ØÃß´Â ±â´ÉÀ» °¡Áø´Ù.

 ¿¹) 

function testBreak(x) {

var i = 0

while (i < 6) {

if (i == 3)

break

i++

}

return i*x

}


* continue : ¹Ýº¹¹® ¾È¿¡¼­ »ç¿ë µÇ¸ç ¹Ýº¹¹®Áß continue¹®ÀåÀÇ ´ÙÀ½ ¹®ÀåÀ» ¹«½ÃÇÏ°í ´ÙÀ½ ¹Ýº¹ÀÇ Áֱ⸦ ¼öÇà Çϵµ·Ï ÇÑ´Ù.

¿¹)

i = 0

n = 0

while (i < 5) {

i++

if (i == 3)

continue

n += i

}


°´Ã¼(object) °ü·Ã¹®

ÀÚ¹Ù ½ºÅ©¸³Æ®ÀÇ Object °ü·Ã ¸í·ÉÀº °´Ã¼ÀÇ property¿¡ °ü·ÃµÈ for ... in ,°´Ã¼ ÀÚ½ÅÀ» ÂüÁ¶ÇÒ ¶§ ¾²´Â this , ƯÁ¤ °´Ã¼¸¦ ¸¸µé ¶§ »ç¿ë ÇÏ´Â new , ƯÁ¤ °´Ã¼¸¦ ±âº» °´Ã¼·Î Á¤ ÇÏ´Â with °¡ ÀÖ´Ù.

*for ... in

for ( º¯¼ö in °´Ã¼À̸§ ) {

¹®Àå

}

º¯¼ö¿¡´Â °´Ã¼À̸§¿¡ ÇØ´çÇÏ´Â °´Ã¼ÀÇ property(¸É¹ö º¯¼ö,°´Ã¼¿¡ ¼ÓÇÑ º¯¼ö)µéÀÌ Â÷·Ê ´ë·Î µé¾î°£´Ù.

¿¹)

// ´ÙÀ½ ¿¹´Â ¿ÀºêÁ§Æ®ÀÇ propertyÀÇ À̸§°ú °ªÀ» º¸¿© ÁÖ´Â ÇÔ¼öÀÌ´Ù.

function dump_props(obj, obj_name) {

var result = ""

for (var i in obj) {

result += obj_name + "." + i + " = " + obj[i] + "<BR>"

}

result += "<HR>"

return result

}






* new

°´Ã¼_À̸§ = new °´Ã¼Çü( [ÀÎÀÚ ... ] )

* this : °´Ã¼ ¾È¿¡¼­ ÀÚ½ÅÀ» ÂüÁ¶ÇÒ ¶§ ¾²´Â keyword

¿¹)

<html>

<SCRIPT language=JavaScript>

function validate(obj, lowval, hival) {

if ((obj.value < lowval) || (obj.value > hival))

alert("Invalid Value!")

}

</SCRIPT>

<body>

<B>Enter a number between 18 and 99:</B>

<INPUT TYPE = "text" NAME = "age" SIZE = 3

onChange="validate(this, 18, 99)">

</body>

</html>



* with : ÀÏÁ¤ ¿µ¿ª¾È¿¡¼­ ƯÁ¤ °´Ã¼¸¦ ±âº» °´Ã¼·Î Á¤ÇÏ´Â ¸í·É , ¼Õ°¡¶ôÀÇ ¼ö°í¸¦ ´ú±â À§ÇØ »ó´çÈ÷ À¯¿ëÇÏ´Ù.

with (°´Ã¼Çü){

¹®Àå

}

¿¹)

var a, x, y

var r=10

with (Math) {

a = PI * r * r

x = r * cos(PI)

y = r * sin(PI/2)

}



ÁÖ¼®¹®

¼Ò½º Äڵ忡 ¼³¸íÀ» ´ã±â À§ÇØ ¾²´Â ±¸¹®À¸·Î ÁÖ¼®À» ´Ü ºÎºÐÀº JavaScript ÀÎÅÍÇÁ¸® ÅͰ¡ ÇØ¼®ÇÏÁö ¾Ê´Â´Ù.

// : ÇÑÁÙ¿¡ ÁÖ¼®À» ´Ü´Ù.

/* ~~~ */ : ÇÑÁÙ ÀÌ»óÀÇ ÁÖ¼®À» ´Þ±â À§ÇÑ ±¸¹®





3. Java Script Object


3.1 Object

ÀÚ¹Ù ½ºÅ©¸³Æ®¿¡¼­´Â 20¿©°³ÀÇ Object¸¦ ±âº»À¸·Î Áö¿øÇÑ´Ù. Object´Â Property ¿Í Method¸¦ °¡Áø´Ù.



´ÙÀ½Àº Java Script Object´Â °èÃþ(hierarchy)À» °®°í ÀÖÀ¸¸ç ObjectµéÀº ObjectÀÇ ÀÌ ¸§¿¡ÀÇÇØ ÂüÁ¶µÇ°í, »óÀ§°èÃþÀÇ ¿ÀºêÁ§Æ® À̸§ µÚ¿¡ "."À» ºÙ¿©¼­ ÇÏÀ§ °èÃþÀÓÀ» Ç¥½Ã ÇÒ ¼ö ÀÖ´Ù. ¿¹¸¦ µé¸é



¼Ó¼º(Properties)

Java ScriptÀÇ Object´Â Properties(¼Ó¼º)¸¦ °¡Áö°í ÀÖ´Ù°í Çß´Ù. Property´Â ±× °ªÀ» Áö Á¤ÇÔÀ¸·Î¼­ Á¤ÀÇ ÇÒ¼ö ÀÖ´Ù. '.'À¸·Î »óÀ§ Object¿Í ±¸ºÐÇÑ´Ù. ´ÙÀ½ ¿¹Á¦¸¦ »ìÆìº¸ÀÚ.


¹è¿­°ú Java ScriptÀÇ Properties´Â ½ÇÁ¦ÀûÀ¸·Î´Â ¿¬°ü¼ºÀÌ ÀÖ´Ù. »ç½Ç»ó Properties¿Í ¹è¿­Àº ¼­·Î °°Àº °ªÀ» Ç¥ÇöÇÏ´Â ¹æ¹ýÀÇ Â÷ÀÌÀÓÀ» ¾Æ·¡ÀÇ ¿¹Á¦¸¦ º¸¸é ¾Ë ¼ö ÀÖ´Ù.


À§ÀÇ ¹è¿­Àº ´ÙÀ½°ú °°ÀÌ À妽º°¡ ¼ýÀÚÀÎ ¹è¿­¶Ç´Â properties½ÄÀ¸·Î Ç¥ÇöÇØµµ ¹«¹æÇÏ ´Ù. Áö±Ý±îÁöÀÇ µÎ ¿¹Á¦´Â ´ÙÀ½°ú °°À½À» ¾Ë ¼ö ÀÖ´Ù.


À§¿Í °°ÀÌ À妽º°¡ ½ºÆ®¸µ°ª°ú ¿¬°ü ÀÖ´Â ÇüÅÂÀÇ ¹è¿­À» associated arrary¶ó°í ÇÑ´Ù.



ÇÔ¼ö¿Í ¸Þ¼Òµå(Functions and Methods)

Object¿¡¼­ »ç¿ëµÈ ¸Þ¼Òµå´Â ÇÔ¼ö¿Í °°Àº ±â´ÉÀ» ÇÑ´Ù°í º¸¸é µÈ´Ù. ÇÔ¼ö´Â ÀÚ¹Ù½ºÅ©¸³ Æ®¿¡¼­ ºí·Ï ´ÜÀ§·Î Ç¥ÇöµÇ°í ÁöÁ¤µÈ ÀÏÀ» ¼öÇàÇÏ´Â ¸í·ÉµéÀÇ ÁýÇÕÀ̶ó ÇÒ ¼ö ÀÖ´Ù. ´ÙÀ½ÀÇ ¿¹¸¦ º¸¸é


stringÀ̶ó´Â º¯¼ö¿¡ ÀÎÀÚ¸¦ ³Ñ°Ü ¹Þ¾Æ¼­, È­¸é¿¡ Ç¥½ÃÇØÁÖ´Â ÇÔ¼öÀÌ´Ù. ÇÔ¼ö´Â ¼±¾ð¸¸ À¸·Î´Â ½ÇÇà ÇÒ ¼ö ¾ø°í, Á¤ÀÇµÈ ÇÔ¼ö¸¦ ºÒ·¯¼­ ½ÇÇà½ÃÄѼ­ »ç¿ëÇÒ ¼ö ÀÖ´Ù. ´ÙÀ½°ú °°ÀÌ Á¤ ÀÇÇϸé ÇÔ¼ö¸¦ ½ÇÇàÇÒ ¼ö ÀÖ´Ù.


ÇÔ¼ö¿¡¼­´Â ¹è¿­ÇüÅ·ΠÀÎÀÚ¸¦ ¹ÞÀ» ¼ö Àִµ¥ ´ÙÀ½ÀÇ ¿¹¸¦ »ìÆìº¸ÀÚ.


listÇÔ¼ö¸¦ list("o", "one", 1967, "three", "etc, etc...")°ú °°ÀÌ ÁöÁ¤ÇÏ¿´´Ù¸é´ÙÀ½°ú °°Àº °á°ú°¡ ³ªÅ¸³­´Ù.




¸Þ¼Òµå Á¤ÀÇ(Defining Methods)

ÀϹÝÀûÀÎ ÇÔ¼ö ¼±¾ð°ú °°Àº ¹æ½ÄÀ¸·Î Á¤ÀÇÇϰí, Object¿¡¼­ ¸Þ¼Òµå¸¦ ¼±¾ðÇϱâ À§Çؼ­ ´Â ´ÙÀ½°ú °°ÀÌ ÇÏ¸é µÈ´Ù.

¹Ì¸® ÇÔ¼ö¸¦ Á¤ÀÇÇÑ ÈÄ¿¡, °´Ã¼³»ÀÇ ¸Þ¼Òµå·Î ¼±¾ðÇÒ ¼ö ÀÖ´Ù. Object¿¡¼­ ´ÙÀ½°ú °°ÀÌ ºÒ·¯³¾ ¼ö ÀÖ´Ù.



Object ÂüÁ¶¸¦ À§ÇÑ this

ÀÚ¹Ù½ºÅ©¸³Æ®´Â this¶ó´Â Ư¼öÇÑ keyword¸¦ °®°í Àִµ¥, this´Â ÇöÀçÀÇ object¸¦ ÂüÁ¶ ÇÒ ¶§ »ç¿ëÇÑ´Ù. validate¶ó´Â ÇÔ¼ö´Â ÁÖ¾îÁø objectÀÇ value property¸¦ È®ÀÎÇÏ¿©, Àμö·Î ÃÖ ´ëÄ¡¿Í ÃÖ¼ÒÄ¡°ª°ú ºñ±³ÇØ ÁØ´Ù. ±× ¿¹¸¦ »ìÆì º¸¸é


form ű׿¡¼­ onChange À̺¥Æ® Çڵ鷯¿¡¼­ ºÒ·¯³»¾î, form ű׿¡¼­ ÇöÀçÀÇ °ªÀ» ³Ñ°ÜÁÖ¾ú´Ù.






»õ·Î¿î Object »ý¼º(Creating New Objects)

ÀÚ¹Ù½ºÅ©¸³Æ®¿¡´Â ÀÌ¹Ì Á¤ÀÇµÈ objectµéÀÌ ÀÖ°í, ¶ÇÇÑ »ç¿ëÀÚ°¡ »õ·Î¿î object¸¦ »ý¼º ÇÒ ¼ö ÀÖ´Ù. »õ·Î¿î object¸¦ »ý¼ºÇϱâ À§Çؼ­´Â ¸ÕÀú, objectÇü½ÄÀÇ ÇÔ¼ö¸¦ Á¤ÀÇÇϰí new¸¦ ÀÌ¿ëÇØ objectÀÇ instance¸¦ »ý¼ºÇØ¾ß ÇÑ´Ù.

´ÙÀ½ÀÇ car¶ó´Â object¸¦ »ý¼ºÇÏ´Â ¿¹ÀÌ´Ù. property·Î make¿Í model ±×¸®°í year¸¦ Á¤ ÀÇÇÏ¿´´Ù.

À̰ÍÀº ½ÇÁ¦·Î ´ÙÀ½°ú °°ÀÌ instanceÈ­¸¦ ½ÃÄѼ­ »ç¿ëÇÒ ¼ö ÀÖ´Ù.


mycar.make¿¡´Â "Eagle"ÀÌ ÀúÀåµÇ°í, mycar.model¿¡´Â "Talon TSi" µîÀÌ ÀúÀåµÈ´Ù.


¸Þ¼Òµå ¼±¾ð(Defining Methods)

À§¿¡¼­´Â ´Ü¼øÈ÷ Property¸¸À¸·Î Á¤ÀÇµÈ object¸¦ »ìÆìº¸¾Ò´Ù. ¿©±â¿¡ ¸Þ¼Òµå¸¦ ¼±¾ðÇÒ ¼ö Àִµ¥, ´ÙÀ½À» »ìÆìº¸ÀÚ.

ÀÌ¹Ì Á¤ÀÇµÈ pretty_print¸¦ ÀÌ¿ëÇÏ¿© displayCar¶ó´Â ÇÔ¼ö¸¦ ¹Ì¸® Á¤ÀÇÇÑ´Ù. ±× ´ÙÀ½ ´Ù À½°ú °°ÀÌ object Á¤ÀÇ¿¡¼­ displayCar¸¦ ¸Þ¼Òµå·Î Á¤ÀÇÇÏ¸é µÈ´Ù.

    this.displayCar = displayCar;

´ÙÀ½À» »ìÆìº¸ÀÚ.


»õ·Î¿î ¸Þ¼Òµå´Â ´ÙÀ½°ú °°ÀÌ »ç¿ëÇÒ ¼ö ÀÖ´Ù.



ÀÚ¼¼ÇÑ method³ª property´Â Java Script Authoring Guide ( http://home.netscape.com/eng/mozilla/3.0/handbook/javascript/)¸¦ Âü°í Çϱ⠹ٶõ´Ù.



3.2 Built-in Object and Function

ÀÚ¹Ù ½ºÅ©¸³Æ®´Â ´ÙÀ½°ú °°Àº built-in Object ¿Í FunctionÀ» Áö¿ø ÇÑ´Ù.


string Object

¹®ÀÚ¿­ º¯¼ö³ª property¸¦ ¼±¾ð ÇÒ ¶§´Â string °´Ã¼¸¦ »ç¿ë ÇØ¾ß ÇÑ´Ù. string º¯¼ö ÀÌ ¿Ü¿¡µµ " "À¸·Î ½Î¿© ÀÖ´Â string »ó¼ö ¶ÇÇÑ string °´Ã¼ÀÌ´Ù. ¿¹¸¦ µé¸é

¿¡¼­ "Hello, World!"´Â string °´Ã¼ ÀÌ´Ù. µû¶ó¼­ mystring À̶ó´Â º¯¼öµµ string °´Ã¼°¡ µÈ´Ù. ¶Ç string °´Ã¼¿¡´Â toUpperCase¶ó´Â method(°´Ã¼¿¡ ¼ÓÇÑ ÇÔ¼ö)°¡ ÀÖ´Ù. ÀÌ´Â string °´Ã¼ÀÇ ¹®ÀÚ¿­ÀÇ ¾ËÆÄºª ¼Ò¹®ÀÚ¸¦ ´ë¹®ÀÚ·Î ¹Ù²ãÁÖ´Â ÇÔ¼ö ÀÌ´Ù. ÀÌ ¿Ü¿¡µµ bold ü ·Î ¹Ù²ã ÁÖ´Â bold¶ó´Â method µîµµ ÀÖ´Ù. ¿¹¸¦µé¸é "Hello, World!".toUpperCase()´Â "HELLO, WORLD!"¸¦ ¹ÝȯÇÒ °ÍÀÌ´Ù.

Math Object

Math °´Ã¼´Â ¸»±×´ë·Î ¼öÇп¡ °ü·ÃµÈ °´Ã¼ÀÌ´Ù. µû¶ó¼­ ¼öÇп¡ °ü·ÃµÈ property¿Í method¸¦ °¡Áö°í ÀÖ´Ù. ¿¹¸¦ µé¸é Math.PI´Â ÆÄÀÌ °ªÀ» °¡Áö°í ÀÖ´Ù. ¶Ç Math.sin(1.56)Àº sin°ªÀ» ³ªÅ¸ ³»´Â methodÀÌ´Ù. ±×¸®°í Math¸¦ ¸¹ÀÌ ¾µ ¶§´Â with¸í·É°ú °°ÀÌ ¾´´Ù¸é ÆíÇÒ °ÍÀÌ´Ù.


Date Object

Date °´Ã¼´Â ³¯ÀÚ¿Í ½Ã°£¿¡ °ü·ÃµÈ °´Ã¼ÀÌ´Ù. ³¯ÀÚ¿Í ½Ã°£À» ¼³Á¤Çϰųª ±× °ªÀ» ¾Ë¾Æ º¸´Â method¸¦ °¡Áö°í ÀÖ´Ù. ¶Ç ÀÚ¹Ù ½ºÅ©¸³Æ®¿¡´Â ³¯ÀÚ³ª ½Ã°£¿¡ °ü·ÃµÈ ÀÚ·áÇüÀÌ ¾ø±â ¶§¹®¿¡ StringÇüÀ¸·Î ±× °ªÀ» ¹Ýȯ ÇÏ°Ô µÈ´Ù. Date °´Ã¼¸¦ ¸¸µé±â À§Çؼ­´Â ´ÙÀ½°ú °°ÀÌ ÇÏ¸é µÈ´Ù.



Built-in Function

Values¸¦ ¼³¸íÇÒ ¶§ Àá±ñ ¾ð±ÞÇß´ø eval, parseInt, parseFloat°¡ ¹Ù ·Î Built-in FunctionÀÌ´Ù. ¸ÕÀú eval ÇÔ¼ö¸¦ »ìÆìº¸±â·Î ÇÑ´Ù.

evalÀº ÁÖ¾îÁø ¹®ÀÚ¿­ ÀÎÀÚ¸¦ ¹Þ¾Æ¼­ ÀÚ¹Ù½ºÅ©¸³Æ®ÀÇ Ç¥Çö½Ä, ±¸¹® µîÀ¸·Î ¹Ù²Ù¾î °ªÀ» ±¸Çϰųª ½ÇÇà½ÃÄÑÁØ´Ù. ´ÙÀ½ÀÇ ¿¹´Â typeÀÌ textÀÎ input ű׿¡¼­ °ªÀ» ¹Þ¾Æ¼­ eval¿¡ °ª À» ´ëÀÔÇØ ½ÇÇà½ÃÄÑÁØ´Ù.


°ª¿¡ 3+3À» ³Ö¾ú´Ù¸é 6À» µÇµ¹·Á ÁÖ°í, document.write('test')¶ó´Â ±¸¹®À» ³ÖÀ¸¸é È­¸é ¿¡ test¶ó´Â ¹®ÀÚ¿­À» Ç¥½ÃÇØÁÖµµ·Ï ½ÇÇàÇÑ´Ù.

parseInt¿Í ParseFloat´Â °¢°¢ °ªÀ» ¹Þ¾Æ¼­ Çüº¯È¯À» ÇØÁִµ¥, ¸¸¾à ¼ýÀÚ°¡ ¾Æ´Ò °æ¿ì ¿¡´Â NaN(Not a Number)¸¦ ¹ÝȯÇÑ´Ù.



3.3 HTML Object

HTML°ú °ü·ÃµÈ Object·Î »óÀ§ Object¿¡ window¸¦ °®°í ÀÖÀ¸¸ç, ±× °èÃþµµ´Â ´ÙÀ½°ú °°´Ù. ObjectµéÀº ObjectÀÇ À̸§¿¡ÀÇÇØ ÂüÁ¶µÇ°í, »óÀ§°èÃþÀÇ µÚ¿¡ "."À» ºÙ¿©¼­ ÇÏÀ§ °èÃþÀÓÀ» Ç¥½ÃÇÒ ¼ö ÀÖ´Ù.

        window

          +- parent, frames, self, top

          +- location

          +- history

          +- document

               +- forms

               +- elements

               |    +- text fields

               |    +- textarea

               |    +- checkbox

               |    +- password

               |    +- radio

               |    +- select

               |    +- button

               |    +- submit

               |    +- reset

               +- links

               +- anchors

º¸Åë ÃÖ»óÀ§ °èÃþÀÇ window´Â »ý·«ÇÒ ¼ö ÀÖ´Ù. ¸¸¾à¿¡ ÇöÀç À©µµ¿ìÀÇ locationÀ» ¾Ë°í ½Í´Ù ¸é ´ÙÀ½°ú °°ÀÌ ÇÏ¸é µÈ´Ù.



4 ¿¹Á¦, ¸¶¿ì½º À̺¥Æ®¿¡ µû¶ó º¯ÇÏ´Â ±×¸² ¸¸µé±â


Internet Explore 3.0¿¡ Ãß°¡µÈ ±â´É Áß¿¡ LayOut ColtrolÀ̶ó´Â ±â´ÉÀÌ ÀÖ´Ù. ÀÌ ±â´É Àº Ms°¡ Ãß±¸ Çϰí ÀÖ´Â À¥ÀÇ CD TitleÈ­¿¡ ÀÏȯÀ¸·Î ²Ï È£ÆòÀ» ¹Þ¾Ò´Ù. ƯÈ÷ ¸¶¿ì½º Ä¿¼­ ¿¡ µû¶ó ±×¸²ÀÌ ¹Ù²ï´Ù°Å³ª À½¾ÇÀÌ ³ª¿À´Â ±â´ÉµéÀº µðÀÚÀÎ ÀûÀÎ Ãø¸é¿¡¼­ Ä¿´Ù¶õ ÀÌÁ¡ÀÌ ´Ù. ÀÎÅÍ³Ý ÀͽºÇ÷ξ¼­´Â À̸¦ ActiveX±â´ÉÀ¸·Î ±¸Çö ÇÏ¿´Áö¸¸ JavaScript1.1À» ÀÌ¿ë ÇÏ ¸é ÀÌ ±â´ÉÀ» ½±°Ô ±¸Çö ÇÒ ¼ö ÀÖ´Ù.

4.1 Image Object

JavaScript1.1¿¡ Ãß°¡µÈ ±â´ÉÁß Çϳª°¡ Image¶ó´Â ObjectÀÌ´Ù. ¸»±×´ë·Î HTML¹®¼­ÀÇ ±×¸²µéÀ» °´Ã¼È­ ½ÃÄѼ­ ÀúÀå ÇÒ ¼ö ÀÖ´Â °ÍÀÌ´Ù. ´ÙÀ½ ¿¹¸¦ º¸ÀÚ.

<html>

<script language=JavaScript>

tempIamge = new Image();

tempImage.src = "turn2.jpg";

</script>

<body>

<img src="turn1.jpg" ><br>

<form>

<input type=button

onClick='document.images[0].src = tempImage.src' value="click here">

</body>

</html>

º¸¸é ¿ì¼± ´«¿¡ ¶ç´Â °ÍÀº tempImage¶ó´Â À̸§À¸·Î Image¶ó´Â ÇüÀ¸·Î °´Ã¼¸¦ ÇÒ´çÇÏ °í

src¶ó´Â property¿¡ ±×¸²ÀÇ URLÀ» Àû¾î ÁÖ¸é Image°´Ã¼°¡ ÇÒ´ç µÈ °ÍÀÌ´Ù. ¶Ç document°´Ã¼¿¡ property·Î images¶ó´Â ¹è¿­ÀÌ Àִµ¥. ÀÌ´Â ¹®¼­»ó¿¡ <IMG ~~>ÅÂ±× ·Î Á¤ÀÇÇÑ À̹ÌÁö °´Ã¼µéÀÌ ÀÌ ¹è¿­¿¡ µé¾î °¡°Ô µÈ´Ù.

µû¶ó¼­ onClick='document.images[0].src = tempImage.src' À̺κÐÀº ¹®¼­¾È¿¡ Àִ ù ¹øÂ° À̹ÌÁö (¹è¿­Àº 0ºÎÅÍ ½ÃÀÛÀÔ´Ï´Ù.)¸¦ tempImage·Î ¹Ù²Ù¶ó´Â ¸í·ÉÀÌ µÇÁÒ.










4.2 ¸¶¿ì½º À̺¥Æ®¿¡ µû¶ó À̹ÌÁö ¹Ù²Ù±â

¿ì¼± ´ÙÀ½°ú °°ÀÌ ±×¸² 4ÀåÀ» Áغñ Çß´Ù.

[±×¸² 2] r1.jpg

[±×¸² 3] r2.jpg

[ ±×¸² 4] g1.jpg

[±×¸² 5] g2.jpg

JavaScript1.1ºÎÅÍ <A > ű׿¡ onMouseOver onMouseOut Event¸¦ Áö¿ø ÇÑ´Ù. ÀÌ À̺¥Æ®¸¦ ÀÌ¿ë ÇÏ¸é ¸¶¿ì½º°¡ ¸µÅ©µÈ ¿µ¿ª¿¡ µé¾î¿À°í ³ª°¡´Â °ÍÀ» ÆÇ´Ü ÇÒ ¼ö ÀÖ´Ù.

±×·³ ¿Ï¼ºµÈ ¼Ò½º¸¦ º¸ÀÚ.











<html>

<body bgcolor=white>

<a href="foo1.html"

onMouseOver='document.images[0].src="r2.jpg"'

onMouseOut='document.images[0].src="r1.jpg"' > <img src='r1.jpg' border=0></a>

<a href="foo2.html"

onMouseOver='document.images[1].src="g2.jpg"'

onMouseOut='document.images[1].src="g1.jpg"' > <img src='g1.jpg' border=0></a>

</body>

</html>


ÀÌ·¸°Ô ÇØ¼­ documentÀÇ À̹ÌÁö¸¦ ¹Ù²Ü ¼ö ÀÖ´Â °ÍÀÌ´Ù. TableµîÀ» ½á¼­ ImageÀÇ À§ Ä¡¸¦ Àß Á¶Àý ÇÏ¸é ½±°Ô Àç¹Ì ÀÖ´Â ÆäÀÌÁö¸¦ ¸¸µé ¼ö ÀÖ´Ù. ¶Ç ´ÙÀ½Àå¿¡ ¹è¿ì´Â Live ConnectµîÀÇ ±â¼úÀ» ¾²¸é ¸¶¿ì½º À̺¥Æ®¿¡ µû¶ó À½¾Çµµ È帣°Ô ÇÒ ¼ö ÀÖ´Ù. ¶Ç À̹ÌÁö¸¦ ¾Ö ´Ï¸ÞÀÌ¼Ç GIF¸¦ ¾´´Ù¸é ´õ¿í´õ Àç¹ÌÀÖ´Â ÆäÀÌÁö°¡ µÉ°ÍÀÌ´Ù.

5. Live Connect


Live Connect´Â ÇÑ ÆäÀÌÁö ³»¿¡ ÀÖ´Â Java¿Í JavaScript ±×¸®°í plug-in°£ÀÇ Åë½ÅÀ» °¡´ÉÇÏ°Ô ÇÏ´Â ±â¼ú·Î Netscape Navigator 3.0 beta4 ºÎÅÍ Áö¿øÇÏ´Â ±â´ÉÀÌ´Ù.


[±×¸² 6]

Live Connect¸¦ ÀÌ¿ëÇØ ÀÚ¹Ù ½ºÅ©¸³Æ®·Î ÀÚ¹Ù¿Í ÇÒ ¼ö ÀÖ´Â ÀÏ¿¡ ´ëÇØ °£´ÜÈ÷ ¼Ò°³ÇÏ ÀÚ¸é

  1. ÀÚ¹Ù ½ºÅ©¸³Æ®¿¡¼­ °°Àº ÆäÀÌÁö ¾È¿¡ ÀÖ´Â ÀÚ¹Ù ¾ÖÇø´ÀÇ public º¯¼ö Method¿Í public ClassµîÀ» Á÷Á¢ »ç¿ë ÇÒ ¼ö ÀÖ´Ù.
  2. ÀÚ¹Ù ½ºÅ©¸³Æ®¿¡¼­ ÀÚ¹Ù ±¸¹®À» ±×´ë·Î ¾µ ¼ö ÀÖ´Ù.
  3. Plug-inÀ» Á¦¾î ÇÒ ¼ö ÀÖ´Ù.

¡Ø Live Connect ±â´ÉÀ» ÀÌ¿ëÇÏ·Á¸é NetscapeÀÇ Options ÀÇ Network PreferenceÀÇ Language tagÀÇ Java¿Í JavaScript¸¦ Enable ½ÃÄÑ ³õ¾Æ¾ß ÇÑ´Ù.






5.1 JavaScript To Java Åë½Å

5.1.1 Java¸¦ Á÷Á¢ Á¦¾îÇÏÀÚ.

JavaScript ´Â Java¸¦ Á÷Á¢ Á¦¾î°¡´É ÇÏ´Ù. ¿¹¸¦ µé¸é System.out.printlnÀ» JavaScript ±¸¹® ³»¿¡ ½áÁÖ¸é Java Consol¿¡ ¸Þ½ÃÁö°¡ Ç¥½ÃµÈ´Ù. Netscape 3.0ÀÇ options ¸Þ´º¿¡¼­ Show Java ConsolÀ» üũ ÇØÁÖ°í ´ÙÀ½°ú °°Àº ÆäÀÌÁö¸¦ ¸¸µé¾î µé¾î°¡ º¸ÀÚ

<html> 

<script language=JavaScript>
java.lang.System.out.println("This is Test");
</script>
<body bgcolor=white>
</html>

±×·¯¸é ´ÙÀ½°ú °°ÀÌ Java Consol¿¡ This is Test¶ó´Â ³»¿ëÀÌ ¶ã °ÍÀÌ´Ù.

JavaScript¿¡¼­ Java±¸¹®À» ÂüÁ¶Çϱâ À§Çؼ­´Â ÀÚ¹Ù ±¸¹®À» ´ÙÀ½°ú °°ÀÌ ¹Ù²ã ÁØ´Ù .

[Packages.]packageName.className.methodName

Packages¶ó´Â À̸§Àº java,sun,netscape package¿¡¼­´Â »ý·« °¡´É ÇÏ´Ù. Áï java³ª sun ¶Ç netscape¶ó´Â À̸§Àº Packages.java, Packages.sun, Packages.netscapeÀÇ »ý·«ÇüÀÌ ´Ù. ¿¹¸¦µé¸é java.lang.SystemÀ̶ó´Â Ŭ·¡½º´Â Packages.java.lang.SystemÀÌ ³ª java.lang.SystemÀ̶ó´Â À̸§µÑ´Ù ÀÚ¹Ù ½ºÅ©¸³Æ®¿¡¼­ »ç¿ë °¡´ÉÇÏ¸ç ±×¿ÜÀÇ package¿¡¼­´Â "Packages."¸¦ ²À ºÙ¿© ÁÖ¾î¾ß ÇÑ´Ù.

º¯¼ö¿Í method¸¦ »ç¿ëÇÏ´Â ¹æ¹ýÀº ÀÚ¹Ù¿Í °°´Ù. ¿¹¸¦ µé¸é ´ÙÀ½°ú °°´Ù.

<html>
<script language=JavaScript>
var System = java.lang.System;
System.err.println("Hello JavaScript");
</script>
<body></body>
</html>

¿¹Á¦¿¡¼­ SystemÀ̶ó´Â º¯¼ö´Â java.lang.SystemÀ̶ó´Â Class¸¦ ÂüÁ¶ ÇÑ´Ù. ¶Ç System ClassÀÇ err À̶ó´Â »ó¼ö´Â printlnÀ̶ó´Â method¸¦ ½ÇÇà ½Ã۰í ÀÖ´Ù. ¿©±â¼­ argument°¡ java.lang.String ÇüÀε¥(±×³É String Çü) JavaScriptÀÇ String Class ¿Í JavaÀÇ String class (java.lang.String)Àº ȣȯµÈ´Ù.

JavaScript¿¡¼­´Â ½ÉÁö¾î Java ¿ÀºêÁ§Æ®¸¦ ¾µ¼öµµ ÇÒ ¼ö ÀÖ´Ù. ¿¹¸¦ µé¸é

var mydate = new java.util.Date();




5.1.2 AppletÀ» Á¦¾î ÇÏÀÚ!

JavaScript·Î Applet¸¦ Á¦¾î ÇÒ ¼ö ÀÖ´Ù. ±×·¯±â À§Çؼ­´Â ¹°·Ð AppletÀÇ public Class ¶Ç´Â public Method³ª public º¯¼ö¸¦ Àß ¾Ë°í ÀÖ¾î¾ß°ÚÁö¸¸ init(), start() , stop() ,destroy() µî ó·³ Applet¿¡¼­ ±âº»ÀûÀ¸·Î ÀÖ´Â method´Â ½±°Ô ÂüÁ¶ ÇÒ ¼ö ÀÖÀ» °ÍÀÌ´Ù. ¿¹ ¸¦ µç´Ù¸é HTML formÀÇ ¹öưÀ» Á¦¾îÇØ¼­ ¹®¼­³»ÀÇ Java AppletÀ» ½ÃÀÛÇÏ°Ô Çϰųª ¸ØÃß °Ô ÇÒ ¼ö ÀÖÀ» °ÍÀÌ´Ù.

AppletÀ» ÂüÁ¶ ÇÏÀÚ!

¹®¼­³»ÀÇ ¸ðµç AppletÀº "document.appletName" ÀÇ ÇüÅ·ΠJavaScript¿¡ ÀÇÇØ »ç¿ë µÉ ¼ö ÀÖ´Ù. ¿©±â¼­ appletNameÀº HTML ¹®¼­ÀÇ APPLET tag¿¡¼­ NAMEÀ̶ó ´Â ¼Ó¼ºÀ¸·Î Á¤ÀÇÇØ ÁÖ¸é µÈ´Ù. ´ÙÀ½ ¿¹¸¦ º¸ÀÚ.


<HTML>
<script language=JavaScript>
function test_stop() {
document.testApplet.stop();
}
</script>
<BODY>
<APPLET CODE=test.class NAME=testApplet WIDTH=60 HEIGHT=30>
</APPLET>
<form name=test>
<input type=button value="stop" onClick=test_stop()>
</form>
</body></html>

À§ ¿¹Á¦¿¡¼­ APPLET ű׸¦ »ìÆì º¸¸é NAME=testApplet¶ó´Â ºÎºÐÀ» º¼ ¼ö ÀÖÀ» °ÍÀÌ´Ù. AppletÀÇ À̸§À» testApplet¶ó°í ¼±¾ðÇÑ °ÍÀÌ´Ù. µû¶ó¼­ À§ ÀÚ¹Ù ½ºÅ©¸³Æ® ºÎºÐÀÇ method test_stop()¿¡¼­´Â document.testApplet.stop()¶ó°í ÇØÁÖ¾î testAppletÀÇ stop() method¸¦ ¾´ °ÍÀÌ´Ù. À§ Ç¥ÇöÀº ´ÙÀ½°ú °°ÀÌ ¹Ù²ã ½áµµ µÈ´Ù.

document.applets["testApplet"].stop()
document.applets[0].stop() // ¹®¼­¿¡¼­ ù ¹øÂ° applet¶ó´Â ¶æ --> applets[0]

±×·³ ¿¹¸¦ Çϳª µé¾î º¸ÀÚ ´ÙÀ½¿¹´Â Netscape 3.0 Authoring Guide¿¡ ÀÖ´Â ¿¹ ÀÌ´Ù.

//File Name : colors.java

import java.applet.Applet;

import java.awt.Color;

import java.awt.Font;

import java.awt.Graphics;

public class colors extends Applet implements Runnable {

Font f = new Font("TimesRoman", Font.BOLD, 48);

Color colors[] = new Color[12];

Thread myThread;

String myString;

public void init() {

// init color array

colors[0] = Color.black;

colors[1] = Color.blue;

colors[2] = Color.cyan;

colors[3] = Color.darkGray;

colors[4] = Color.gray;

colors[5] = Color.green;

colors[6] = Color.magenta;

colors[7] = Color.orange;

colors[8] = Color.pink;

colors[9] = Color.red;

colors[10] = Color.white;

colors[11] = Color.yellow;

myString = new String("Hello, world!");

}

public void start() {

if (myThread == null) {

myThread = new Thread(this);

myThread.start();

}

}

public void stop() {

if (myThread != null) {

myThread.stop();

myThread = null;

}

}

public void run() {

// display array of colors

int i = 0;

while (true) {

setForeground(colors[i]);

repaint();

i++;

try {Thread.sleep(500);}

catch(InterruptedException e) {}

if (i == colors.length)

i = 0;

}

}

public void setString(String aString) {

myString = aString;

System.out.println("myString = " + myString);

repaint();

}

public void paint(Graphics g) {

g.setFont(f);

g.drawString(myString, 15, 50);

}

}


<!-- test.html -->
<html>
<body >
<CENTER><H1>Flashing text applet</H1></CENTER>
<APPLET CODE="colors.class" WIDTH=1000 HEIGHT=60 NAME="colorApp">
</APPLET>
<FORM NAME=colorText>
<P>Enter new text for the flashing display:

<INPUT TYPE="text"
NAME="textBox"
LENGTH=50>

<P>Click the button to change the display:
<INPUT TYPE="button"
VALUE="Change Text"
onClick="document.colorApp.setString(document.colorText.textBox.value)">

<P><INPUT TYPE="button"
VALUE="Restart"
onClick="document.colorApp.start()">

<INPUT TYPE="button"
VALUE="Stop"
onClick="document.colorApp.stop()">

</FORM>
<P>
</body></html>

´ÙÀ½Àº ½ÇÇà °á°ú ÀÌ´Ù.


HTML formÀ¸·Î ¸¸µç ¹öư°ú ÀÔ·Ââµé°ú ÀÚ¹Ù¿ÍÀÇ »óÈ£ ÀÛ¿ëÀÌ ¿Ïº®ÇÏ°Ô ÀÌ·ç¾î Áö°í ÀÖ ´Ù.

5.2 JavaScript·Î Plug-in Á¦¾î Çϱâ

JavaScript·Î Ç÷¯±×ÀÎÀ» Á¦¾îÇÒ ¼ö ÀÖ´Ù. ÇÏÁö¸¸ Ç÷¯±×ÀÎÀÇ Á¾·ù´Â ±²ÀåÈ÷ ´Ù¾çÇÏ°í ±â´É µµ ´Ù¾çÇÏ´Ù. µû¶ó¼­ Ç÷¯±× Àθ¶´Ù Á¦°øÇÏ´Â ÀÚ¹Ù ½ºÅ©¸³Æ® ÇÔ¼öµµ ´Ù¸£¹Ç·Î ÀÚ¼¼ÇÑ »çÇ×Àº Ç÷¯±×ÀÎ ¸Þ´º¾óÀ» Âü°íÇØ Áֱ⠹ٶõ´Ù. ÀÌ °­ÀÇ·Ï¿¡¼­´Â LiveAudio¸¦ Áß½ÉÀ¸·Î ¼³¸í ÇϰڴÙ. ÇöÀç Live Connect¸¦ Áö¿øÇÏ´Â Ç÷¯ ±×ÀÎÀº 3.0¿ëÀ¸·Î ³ª¿À´Â Ç÷¯±×ÀεéÀÇ ´ëºÎºÐÀÌ´Ù. ƯÈ÷ ¸®¾ó¿Àµð¿À Ç÷¯±×ÀÎÀº ¸®¾ó ¿Àµð¿À Ç÷¹À̾î 3.0 ºÎÅÍ Live Connect¸¦ Áö¿ø Çϰí ÀÖÀ¸¸ç Live Connect¸¦ Áö¿øÇÏ´Â Plug-in¿¡ ´ëÇÑ Á¤º¸´Â Live Connect Showcase Page¸¦ Âü°í ÇÏ ±â ¹Ù¶õ´Ù. (http://home.netscape.com/comprod/products/navigator/version_3.0/b uilding_blocks/examples/lc_example/lc-showcase.html)

5.2.1 Live Audio Plug-in Á¦¾î

Netscape 3.0¿¡¼­ ±âº»À¸·Î Áö¿øÇÏ´Â À½¾Ç °ü·Ã Plug-inÀÌ ¹Ù·Î Live AudioÀÌ´Ù. Áö¿øÇÏ´Â À½¾ÇÈ­ÀÏÀº WAV,AIFF,AU,MIDIµîÀÌ´Ù. ±âº»À¸·Î Áö¿øÇÏ´Â Ç÷¯±×ÀÎÀ̹ǷΠ´ç¿¬È÷ Live Connect¸¦ Áö¿ø ÇÑ´Ù. ÀÌ¿¡ ´ëÇÑ Á¤º¸´Â Netscape »çÀÇ È¨ÆäÀÌÁö¸¦ Âü°í Çϱ⠹ٶõ´Ù. ´ÙÀ½Àº Live Audio¿¡¼­ JavaScript¸¦ À§ÇÑ ÇÔ¼öµéÀÌ´Ù.

*Control Function


*State indicator

±×·³ ¿¹Á¦¸¦ º¸ÀÚ.

<HTML><HEAD> <script> function Start_music() { document.embeds[0].play(false) } function Stop_music() { document.embeds[0].stop() } </script> </HEAD> <BODY> <EMBED SRC="ma.wav" HIDDEN=TRUE AUTOSTART=false> <A HREF="javascript:Start_music()">Play the sound now!</A> <A HREF="javascript:Stop_music()">Stop the sound now!</A> <form> <input type=button onClick </BODY> </HTML>

¿ì¼± ¿¹Á¦¸¦ º¸¸é Plug-inÀ» HTML¿¡ ³¢¿ö ³Ö´Â <EMBED>¶ó´Â Tag°¡ º¸ÀδÙ. SRC ¿¡ "ma.wav¶ó´Â ¿þÀ̺ê Çü½ÄÀÇ À½¾Ç È­ÀÏÀ» ¼³Á¤ Çß°í HIDDENÀ» true·Î ÇÏ¿© play stop¹öưÀ̶óµçÁö º¼·ýÁ¶Á¤ ¹öưÀ» ¸ð µÎ ¾ø¾Ý´Ù. ¶Ç autostart ¸¦ false·Î ¼³Á¤ ÇÏ¿© ÆäÀÌÁö¸¦ ÀÐÀÚ ¸¶ÀÚ ½ÃÀÛ ½ÃŰ´Â ±â´ÉÀ» Á׿´´Ù. À§ ÆäÀÌ Áö¸¦ ÀÐÀ¸¸é Play the sound now ¿Í Stop the Sound now!¶ó´Â ¸Þ½ÃÁö°¡ ½ä·· ÇÏ°Ô ¶ã °ÍÀÌ´Ù. ±×·³ Play the sound¸¦ ´­·¯ º¸ÀÚ. ±×·¯¸é À½¾ÇÀÌ ¿¬ÁֵɰÍÀÌ´Ù. (¹°·Ð ma.wavÆÄÀÏÀÌ ÀÖ¾î¾ß ÇÑ´Ù.) ¶Ç Stop the sound ¸¦ ´© ¸£¸é À½¾ÇÀÌ ¸ØÃâ °ÍÀÌ´Ù. ¼Ò½º¸¦ º¸¸é Play ¸¦ ´©¸£¸é Start_music(), StopÀ» ´©¸£¸é Stop_music()¶ó´Â FunctionÀÌ ½ÇÇà µÇ°Ô µÇÀÖ´Ù. Start_music¿¡¼­´Â document.embeds[0].play(false)¶ó°í µÇ¾îÀÖ´Ù. ÀÌ´Â document°´Ã¼ÀÇ Ã¹¹øÂ° Plug-in Object (embeds[0])ÀÇ play¶ó´Â Method¸¦ ½ÇÇà Ç϶ó´Â ¶æÀÌ´Ù. playÀÇ ÀÎÀÚ false´Â À½¾ÇÀÇ ¿¬¼ÓÀç»ý ±â´ÉÀ» off Ç϶ó´Â ¿¹±âÀÌ´Ù. °á°úÀûÀ¸·Î ¹®¼­ÀÇ Ã¹¹øÂ° Plug-in »ðÀÔ °´Ã¼ÀÇ stop¶ó´Â play Method¸¦ ½ÇÇàÇ϶ó´Â ¿¹±âÀÌ´Ù. stopÀÇ °æ¿ìµµ ¸¶Âù°¡Áö ÀÌ´Ù. Çѹø À§¿¡ ¼³¸íÇß´ø Method¸¦ ½ÃÇèÇØ º¸±â ¹Ù¶õ´Ù.




6. Cookie ¿Í JavaScript

6.1 Cookie ¶õ ?

À¥ÀÌ »ç¿ë Çϰí ÀÖ´Â HTTP ¶ó´Â ÇÁ·ÎÅäÄÝÀÌ ÀÏ¹Ý ÀûÀ¸·Î Connectionless(Ŭ¶óÀÌ¾ð Æ®¿Í ¼­¹ö°¡ ¿¬°áÀ» °è¼Ó ÀÌ·çÁö ¾Ê°í ÇÊ¿äÇÒ¶§¸¸ ¿¬°áÇÔ)ÀÇ ÇüŸ¦ ¶ç°í ÀÖ°í ´Ù¼öÀÇ ClientÀÇ »óÅ Á¤º¸¸¦ ¼Ò¼öÀÇ ¼­¹ö¿¡¼­ ÀúÀå Çϰųª ÃßÃâ ÇϱⰡ »ó´çÈ÷ ±î´Ù·Ó´Ù. µû¶ó¼­ »ý°Ü³­ °ÍÀÌ ÄíŰ Àε¥ Äí۶õ Ŭ¶óÀÌ¾ðÆ®°¡ ÀúÀåÀÌ ÇÊ¿äÇÑ Á¤º¸°¡ »ý±æ ¶§ ¸¶´Ù Ŭ¶óÀÌ¾ð Æ® ÂÊ¿¡ ÀÏÁ¤ÇÑ Çü½ÄÀÇ µ¥ÀÌÅÍ(ÄíŰ)·Î ¸¸µé¾î ÀúÀå Çϰí ÇÊ¿äÇÑ ¼­¹ö¿Í ¼­¹öÀÇ µð·ºÅ丮¸¦ Á¢±ÙÇÒ ¶§ ±× Á¤º¸µµ °°ÀÌ º¸³»ÁÖ´Â ÇüŸ¦ ÃëÇϰí ÀÖ´Ù. ÀÌ ÀÏÁ¤ÇÑ ÇüÅÂÀÇ µ¥ÀÌÅÍ ÇϳªÇÏ ³ª°¡ Cookie À̸ç Cookie¿¡´Â Cookie À̸§(name)°ú °ª(value)À» °¡Áö°í ÀÖÀ¸¸ç ´ç¿¬È÷ Cookie°¡ È¿·ÂÀ» °¡Áö´Â ¼­¹ö(domain)¿Í µð·ºÅ丮 ÆÄÀϸí(path) ±×¸®°í È¿·ÂÀ» °¡Áö´Â ½Ã°£ (expires)À» ÇÔ²² ÀúÀå Çϰí ÀÖ´Ù. Ŭ¶óÀÌ¾ðÆ® ¸¶´Ù 300°³ÀÇ Cookie¸¦ ¸¸µé ¼ö ÀÖÀ¸¸ç ÄíŰ º°·Î À̸§À» Æ÷ÇÔÇØ 4KB±îÁö ÀúÀå ÇÒ ¼ö ÀÖ´Ù. Áï ÄíŰÀÇ ÇüÅ´ ´ÙÀ½°ú °°´Ù.

Name=Value; expire=DATE; path=PATH; domain=DOMAIN_NAME; secure

secure´Â Äí۸¦ SSLÇÁ·ÎÅäÄÝ¿¡¼­¸¸ ¾µ °ÍÀÎÁö¸¦ °áÁ¤ ÇÑ´Ù.

6.2 CookieÀÇ È°¿ë

Äí۰¡ ¸¹ÀÌ ¾²ÀÏ °ðÀº À¥ ¼îÇÎ ÆäÀÌÁö¿¡¼­ ÀÌ´Ù. ¿¹¸¦ µé¾î ´ÙÀ½°ú °°Àº »óȲÀ» »ý°¢ ÇØ º¸ÀÚ ·¹ÄÚµå °¡°Ô ȨÆäÀÌÁö¿¡¼­ ¿©·¯ °¡Áö ·¹ÄÚµåÀÇ »ùÇÃÀ» µè°í ·¹Äڵ带 »ì ¶§ °í°´ÀÌ °í¸¥ ¹°Ç°À» ÄíŰÇüÅ·ΠÀúÀå Çϰí, ÃÖÁ¾ ÁöºÒ ÇÒ ¶§ ±× Äí۰ª¸¦ Á¶»ç ÇÏ¿© °í°´ÀÌ ¼±ÅÃÇÑ ¹°Ç°ÀÇ ÃÖÁ¾ °¡°ÝÀ» °è»êÇϰí ÁöºÒ ÇÏ°Ô Çϴ ȨÆäÀÌÁö¸¦ °³¹ß ÇÑ´Ù°í ÇÏÀÚ.

¿ì¼± ±âÁ¸ÀÇ CGI¸¦ ÀÌ¿ëÇÏ¿© Äí۸¦ »ý¼º ÇÏ´Â °ÍÀ» »ý°¢Çغ¸ÀÚ.
step0) °í°´ÀÌ ºê¶ó¿ìÀú¸¦ ÅëÇØ ÆäÀÌÁö¸¦ ¼­¹ö¿¡¼­ ¹ÞÀ½.

step1) °í°´ÀÌ ºê¶ó¿ìÀú¿¡¼­ ¹°°Ç ¼±Åà ( HTML Form ÀÌ¿ë)

step2) ¼±ÅÃÇÑ ¹°°ÇÀÌ ¼­¹ö ÂÊ¿¡ Àü´Þ µÈ´Ù. (HTTP ÇÁ·ÎÅäÄÝÀ» ÅëÇØ)

step3) CGI¿¡¼­ ¼±ÅÃÇÑ ¹°°ÇÀ» ÄíŰ Á¤º¸·Î ¸¸µé¾î Ŭ¶óÀ̾ðÆ®ÂÊ¿¡ º¸³½´Ù. : CGI -> "ºê¶ó¿ìÀú´Ô ÀÌ ÄíŰÁ» À⽤ º¸¼¼¿ä" , (ºê¶ó¿ìÀú : ³¾¸§ ¸Ô´Â´Ù)

step4) °í°´ÀÌ ¼±ÅÃÀ» ¸ØÃâ¶§±îÁö step1,2,3 ¹Ýº¹.

step5) °í°´ÀÌ ¼±ÅÃÀ» ¸ØÃß°í ÁöºÒ ÆäÀÌÁö·Î °£´Ù.

step6) ÁöºÒ ÆäÀÌÁö¿¡¼­ Ä«µå ¹øÈ£µî ÁöºÒ¿¡ ÇÊ¿äÇÑ ¼¼ºÎ Á¤º¸¸¦ ¾´´Ù.

step7) ¼¼ºÎ Á¤º¸¿Í ÄíŰÁ¤º¸¸¦ ¼­¹ö¿¡ Áý¾î ³Ö´Â´Ù.

step8) ±¸¸Å ¿Ï·á.








CGI¸¦ ¾²¸é Äí۸¦ ¸¸µé ¶§ ¸¶´Ù ¼­¹öÂÊ CGI¸¦ °è¼Ó ½ÇÇà ÇØ ÁÖ¾î¾ß ÇÏ°í ³×Æ®¿÷ ¼Óµµ°¡ ´À¸° »óȲ À̶ó¸é ±²ÀåÈ÷ ´À¸®°Ô µÈ´Ù. °áÁ¤ÀûÀÎ ¿øÀÎÀº Ŭ¶óÀÌ¾ðÆ® ÂÊ¿¡¼­ Äí۸¦ ¸¸µéÁö ¾Ê°í ¼­¹ö CGI¸¦ °ÅÃÄ ¸¸µé¾ú´Ù´Â Á¡ÀÌ´Ù. ÇÏÁö¸¸ JavaScript´Â Äí۸¦ Á¦¾î ÇÒ ¼ö ÀÖ´Â ±â´ÉÀÌ ÀÖ´Ù.

±×·³ JavaScript·Î Äí۸¦ ó¸® ÇÒ ¶§¸¦ »ó»ó ÇØ º¸ÀÚ.

step1) °í°´ÀÌ ºê¶ó¿ìÀú¸¦ ÅëÇØ ÆäÀÌÁö¸¦ ¼­¹ö¿¡¼­ ¹ÞÀ½ À̶§ °¢°¢ÀÇ ÆäÀÌÁö¿¡´Â JavaScript Cookie Setting ÇÔ¼ö°¡ µé¾î ÀÖ´Ù.

setp2) °í°´ÀÌ ¹°°ÇÀ» ¼±ÅÃÇϸé JavaScript Cookie Setting ÇÔ¼ö¿¡¼­ Ŭ¶óÀÌ¾ðÆ® ÂÊ¿¡ Cookie¸¦ SettingÇØ ÁØ´Ù. (ºê¶ó¿ìÀú, È¥ÀÚ Äí۸¦ ¸¸µé¾î ¸Ô´Ù.~~)

step3) °í°´ÀÌ ¼±ÅÃÀ» ¿Ï·á ÇÒ ¶§ ±îÁö 1,2¸¦ ¹Ýº¹ ÇÑ´Ù.

step4) °í°´ÀÌ ¼±ÅÃÀ» ¿Ï·áÇϰí ÁöºÒÆäÀÌÁö·Î °£´Ù.

step5) ÁöºÒ ÆäÀÌÁö¿¡¼­ Ä«µå ¹øÈ£µî ÁöºÒ¿¡ ÇÊ¿äÇÑ ¼¼ºÎ Á¤º¸¸¦ ¾´´Ù.

step6) ¼¼ºÎ Á¤º¸¿Í ÄíŰÁ¤º¸¸¦ ¼­¹ö¿¡ Áý¾î ³Ö´Â´Ù.

step7) ±¸¸Å ¿Ï·á.


´«¿¡ º¸ÀÌ´Â °ÍÀº step ÇϳªÁØ °Í¹Û¿¡ ¾øÁö¸¸ CGIÇϳª°¡ ÁÙ¾ú°í °í°´ÀÌ »óǰ ¼±Åýà ¼­¹ö¿¡ ´ëÇÑ Access°¡ ¹ÝÀ¸·Î ÁÙ°Ô µÈ´Ù. ÀÌ´Â ±²ÀåÇÑ ¼º°úÀÌ´Ù.




6.3 JavaScript Cookie

ÇÔ¼ö

±×·³ ½ÇÁ¦ÀûÀ¸·Î ÄíŰ ÇÔ¼ö¸¦ º¸µµ·Ï ÇÏÀÚ. ¼Ò½º¿¡ ´ëÇÑ ¼³¸íÀº »ý·« Çϵµ·Ï ÇϰڴÙ. ÀÌ ¼Ò½º´Â Bill Dortch¶ó´Â ¹Ì±¹ÀÎÀÌ °ø°³ÇÑ Cookie Library ÀÌ´Ù. ÀÌ ¶óÀ̺귯¸®ÀÇ ÃÖ½ÅÆÇ Àº ´ÙÀ½ÀÇ ÆäÀÌÁö¿¡¼­ ±¸ÇÒ ¼ö ÀÖ´Ù.

http://www.freqgrafx.com/411/library.html

±×·³ Äڵ带 º¸ÀÚ ¿ì¼± Cookie¸¦ ¼³Á¤ ÇØÁÖ´Â SetCookie ÇÔ¼ö ÀÌ´Ù. SetCookie ÇÔ¼ö´Â ÀÎÀÚ·Î À̸§, °ª, expire ³¯ÀÚ, path, domain, secure°¡ µé¾î °¡°Ô µÈ´Ù.

function SetCookie (name,value,expires,path,domain,secure) {

document.cookie = name + "=" + escape (value) +

((expires) ? "; expires=" + expires.toGMTString() : "") +

((path) ? "; path=" + path : "") +

((domain) ? "; domain=" + domain : "") +

((secure) ? "; secure" : "");

}

´ÙÀ½Àº NameÀ» ÁÖ¸é Cookie°ªÀ» µ¹·ÁÁÖ´Â GetCookieÇÔ¼ö ÀÌ´Ù.

function GetCookie (name) {

var arg = name + "=";

var alen = arg.length;

var clen = document.cookie.length;

var i = 0;

while (i < clen) {

var j = i + alen;

if (document.cookie.substring(i, j) == arg)

return getCookieVal (j);

i = document.cookie.indexOf(" ", i) + 1;

if (i == 0) break;

}

return null;

}

function getCookieVal (offset) {

var endstr = document.cookie.indexOf (";", offset);

if (endstr == -1)

endstr = document.cookie.length;

return unescape(document.cookie.substring(offset, endstr));

}

¸¶Áö¸·À¸·Î Äí۸¦ Áö¿ì´Â DeleteCookie ÇÔ¼ö ÀÌ´Ù.

 function DeleteCookie (name,path,domain) { 
  if (GetCookie(name)) { 
     document.cookie = name + "=" + 
       ((path) ? "; path=" + path : "") + 
       ((domain) ? "; domain=" + domain : "") + 
       "; expires=Thu, 01-Jan-70 00:00:01 GMT"; 
     } 
 } 
expire ³¯ÀÚ¸¦ 70³â1¿ù1ÀÏ·Î ¹Ù²Ù¾î Äí۸¦ expire ½ÃŰ´Â °ÍÀÌ´Ù.

7. °á·Ð

HTMLÀÇ Tag´Â ³¯·Î ¹ßÀüÇÏ°í ±×¿ÜÀÇ Àå½Ä ±â¼úµµ ³¯·Î ¹ßÀüÇØ °¡°í ÀÖ´Ù. ÀÏ·Ê·Î animation GIFÀÇ µîÀåÀ¸·Î ÀÚ¹Ù·Î animationÀ» ±¸ÇöÇÑ ÆäÀÌÁö´Â °ÅÀÇ ¾ø¾îÁ³´Ù. ¶Ç MSÀÇ internet Explore´Â Scrolling Text¸¦ ÀÚ¹Ù°¡ ¾Æ´Ñ HTML Tag·Î Áö¿ø Çϰí Netscape Â÷±â ¹öÀü¿¡¼­µµ Áö¿ø ÇÒ °ÍÀÌ´Ù. ¶Ç Layout Control°ú Plug-in ,ActiveXµî ¿©·¯ °¡Áö ±â¼úµéÀÌ ³­¸³ÇÏ´Â °¡¿îµ¥ ÀÌ·¯ÇÑ ±â¼ú µéÀ» ¿¬°á ÇØ ÁÖ´Â ¾ð¾îÀÎ JavaScriptÀÇ ÀÔÁö´Â ¾ÕÀ¸·Îµµ °è¼Ó °­È­ µÉ °ÍÀ¸·Î º¸ÀδÙ.

8. ÇÏ°í ½ÍÀº¸» & Reference

À̹®¼­ÀÇ ÃֽŹöÀüÀº http://www.kwangwoon.ac.kr/~psycho/javascript ¿¡¼­ ±¸ÇϽǼö ÀÖ½À ´Ï´Ù. ¹®¼­ ÀÛ¼º¿¡ ¸¹Àº µµ¿òÀ» ÁØ ÈĹè ÀÌÈ«±â ±º¿¡°Ô °¨»ç¸¦ µå¸³´Ï´Ù. ´ÙÀ½Àº Á¦°¡ À̹®¼­¸¦ ÀÛ¼º Çϸ鼭 Âü°íÇÑ URL°ú ¼­ÀûÀÔ´Ï´Ù.

8.1 ÀÚ¹Ù½ºÅ©¸³Æ® URL :
ÀÚ¹Ù½ºÅ©¸³Æ® Handbook (Best of the best); ÀÚ¹Ù ½ºÅ©¸³Æ®ÀÇ ¹ÙÀ̺í ,!!
http://home.netscape.com/eng/mozilla/3.0/handbook/javascript/atlas.html

Live Connect (****) ; Live Connect¿¡ °üÇÑ °£´ÜÇÑ ¼³¸í
http://home.netscape.com/comprod/products/navigator/version_3.0/building_blocks/livec onnect/how.html

ÀÚ¹Ù ½ºÅ©¸³Æ® À妽º (***) ; ÀÚ¹Ù ½ºÅ©¸³Æ®¿¡ ´ëÇÑ ¿¹Á¦ÆäÀÌÁö
http://www.c2.org/~andreww/javascript/

ÀÚ¹Ù ½ºÅ©¸³Æ® Æ©Å丮¾ó (****) ; Ãʺ¸ÀÚ¿ë ¼Ò°³¼­
http://www.webconn.com/java/javascript/intro/

8.2 ÀÚ¹Ù½ºÅ©¸³Æ® Ã¥
Using JavaScript Special Edition , Que ÃâÆÇ»ç , 1996 , Mark C,Reynolds & Andrew Wooldridge