Äú¿ÉÒÔ¾èÖú£¬Ö§³ÖÎÒÃǵĹ«ÒæÊÂÒµ¡£

1Ôª 10Ôª 50Ôª





ÈÏÖ¤Â룺  ÑéÖ¤Âë,¿´²»Çå³þ?Çëµã»÷Ë¢ÐÂÑéÖ¤Âë ±ØÌî



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Model Center   Code  
»áÔ±   
   
 
     
   
 ¶©ÔÄ
  ¾èÖú
ȫջ±Ø±¸ JavaScript»ù´¡
 
À´Ô´£ºcsdn ·¢²¼ÓÚ£º2017-5-27
  3145  次浏览      27
 

JavaScript À´ÁË

1995Ä꣬µ®ÉúÁËJavaScriptÓïÑÔ£¬ÄÇÒ»Ä꣬ÎÒ¸Õ¸Õ´Ó´óѧ±ÏÒµ¡£ÔÚ½ñÄêRedMonk ÍÆ³öµÄ2017 ÄêµÚÒ»¼¾¶È±à³ÌÓïÑÔÅÅÐаñÖУ¬JavaScript ÅŵÚÒ»£¬Java µÚ¶þ£¬Python ·´³¬ PHP ÅŵÚÈý£¬PHP µÚËÄ£¬C# ºÍ C++ ²¢ÁеÚÎå¡£RedMonk ÅÅÃûµÄÖ÷ÒªÒÀ¾ÉÊǸ÷ÖÖ±à³ÌÓïÑÔÔÚ Stack Overflow ºÍ GitHub ÉϵıíÏÖ£¬±ÈÈç±à³ÌÓïÑÔÔÚ Stack Overflow ÉϵÄÌÖÂÛÊýÁ¿£¬ÔÚ GitHub ÉϵĴúÂëÁ¿µÈ¡£¾¡¹ÜÓÐÒ»¶¨µÄÆ¬ÃæÐÔ£¬»¹ÊÇ˵Ã÷ÁËJavaScript Ó¦ÓõĹ㷺ÐÔ¡£´ÓȫջµÄ½Ç¶È¿´£¬Javascript ÊDZر¸µÄÒ»ÖÖ±à³ÌÓïÑÔ¡£

ECMAScript ºÍ JavaScript µÄ¹ØÏµ

JavaScript µ®ÉúÓÚNetscape£¬µ«ÊÇÔÚ1996Ä꣬΢Èí·¢²¼ÁËÓëJavaScript ¼æÈݵÄJScript£¬Ãæ¶Ô¼æÈݺͷ¢Õ¹µÄÐèÒª£¬Íø¾°¹«Ë¾µÄÏÈÏÍÃÇŬÁ¦¼ÓÈëÁË ECMA International ±ê×¼»¯×éÖ¯£¬ÖÂÁ¦ÓÚJavaScript µÄ±ê×¼»¯£¬ÃüÃûΪECMAScript¡£ºóÀ´£¬ÓÉÓÚÀúÊ·µÄÔ­Òò£¬ JavaScript±ê×¼µÄ¿ª·¢Ö÷Ìå±ä³ÉÁËMozila»ù½ð»á¡£¹ØÓÚECMAScript µÄ×îа汾¿ÉÒÔ²ÎÔÄ https://tc39.github.io/ecma262/¡£

¼òµ¥µØ£¬ECMAScript ÊÇJavaScriptÓïÑԵıê×¼¹æ·¶£¬¾ÍÏñC++µÄ±ê×¼Ïà¶ÔÓÚC++ÓïÑÔÄÇÑù¡£

JavaScript ÊÇÔõÑùµÄÓïÑÔ

ÔÚmozilla ¿ª·¢ÕßÍøÕ¾ÉÏÊÇÕâÑùÃèÊöJavaScriptµÄ£º

JavaScript (JS) is a lightweight interpreted or JIT-compiled programming language with first-class functions.

Òâ˼ÊÇ˵JavaScript ÊÇÒ»¸öÇáÁ¿¼¶½âÊÍ»ò¼´Ê±±àÒëµÄº¯ÊýʽÓïÑÔ£¬ÀïÃæÓкܶàµÄ¸ÅÄÇáÁ¿¡¢½âÊÍ¡¢±àÒë¡¢¼´Ê±±àÒë¡¢º¯Êýʽ¡£ÔÚÀÏÂëÅ©¿´À´£¬¼òµ¥Æð¼û£¬Àí½âΪÀ©Õ¹ÓïÑÔ½ÏΪ·½±ã¡£

Ò»°ãµÄ±à³ÌÓïÑÔ¶¼ÓÐ×Å×Ô¼ºÏà¶Ô¶ÀÁ¢µÄÖ´Ðл·¾³£¬µ«ÊÇJavaScriptµÄÖ´Ðл·¾³ÒÀÀµÔÚËÞÖ÷»·¾³ÖУ¬ËÞÖ÷»·¾³ÓÈÆäÊǿͻ§¶ËµÄËÞÖ÷»·¾³ÌṩÁ˸ü¶àͳһµÄ»·¾³±äÁ¿£¬±ÈÈçä¯ÀÀÆ÷ÖеÄwindow£¬documentµÈ¡£Êµ¼ÊÉÏ£¬JavaScript ºÍDOM Êǿɷֵ쬶ÔÓÚ²»Í¬µÄÔËÐл·¾³£¬ÓÐ×Ų»Í¬µÄÄÚÖÃËÞÖ÷¶ÔÏó¡£JavaScript×÷ΪÀ©Õ¹ÓïÑÔÔÚÄÚÖõÄËÞÖ÷»·¾³ÖÐÔËÐУ¬È«¾Ö¶ÔÏóÔÚ³ÌÐòÆô¶¯Ç°¾ÍÒѾ­´æÔÚÁË¡£

JavaScriptµÄʱ¿Õ»ù´¡

´Ó¿Õ¼ä¹ÛµÄ½Ç¶È¿´£¬JavaScript°üÀ¨Êý¾Ý½á¹¹£¬²Ù×÷·û£¬Óï¾äÓë±í´ïʽ£¬º¯Êý£»´Óʱ¼äµÄ½Ç¶È¿´£¬°üÀ¨×÷ÓÃÓò£¬´¦Àí·½Ê½£¬Ä£¿éÓë¿â¡£¹ØÓÚ¼¼ÊõϵͳµÄʱ¿Õ¹Û£¬¿ÉÒԲμû¡¶ÃæÏòȫջµÄ¼¼Êõ¹ÜÀí¡·Ò»ÎÄ¡£

Êý¾Ý½á¹¹

JavaScript Öаüº¬µÄÁùÖÖ»ù±¾ÀàÐÍ£º

Boolean

Null

Undefined

Number

String

Symbol (ECMAScript 6)

ÆäËüÈ«ÊǶÔÏó¡£ÖµÊÇÓÐÀàÐ͵쬱äÁ¿ÊÇûÓÐÀàÐ͵ģ¬ÀàÐͶ¨ÒåÁËÖµµÄÐÐÎªÌØÕ÷£¬±äÁ¿ÔÚûÓгÖÓÐÖµµÄʱºòÊÇundefined¡£ JavaScript¶ÔÖµºÍÒýÓõĸ³Öµ£¯´«µÝÔÚÓï·¨ÉÏûÓÐÇø±ð£¬ÍêÈ«¸ù¾ÝÖµµÄÀàÐÍÀ´Åж¨¡£

¶ÔÓÚ¶ÔÏóµÄÊôÐԺͷ½·¨¶øÑÔ£¬È«¾Ö±äÁ¿ºÍÈ«¾Öº¯ÊýÊÇÈ«¾Ö¶ÔÏóµÄÊôÐÔ£¬È«¾Ö¶ÔÏóÏ൱ÓÚËÞÖ÷¶ÔÏóµÄ¸ù¶ÔÏó¡£ÐèҪעÒâÊÇÊôÐÔµÄÊôÐÔÖÐÄÇЩ²»¿É±ä¶ÔÏóµÄʵÏÖ·½Ê½£º

¶ÔÏó³£Á¿£º ½áºÏwritableºÍconfigurable:false ¿ÉÒÔ´´½¨Ò»¸öÕæÕýµÄ³£Á¿ÊôÐÔ

½ûÖ¹À©ÕÅ£ºObject.preventExtensions(..)À´½ûÖ¹Ò»¸ö¶ÔÏóÌí¼ÓÐÂÊôÐÔ²¢±£ÁôÒÑÓÐÊôÐÔ

Ãܷ⣺ ÔÚ Object.seal(..) ºó²»ÄÜÔö£¬É¾£¬¸Ä ¸ÃÊôÐÔ

¶³½á£º Object.freeze(..) »á½ûÖ¹¶ÔÓÚ¶ÔÏó±¾Éí¼°ÈÎÒâÖ±½ÓÊôÐÔµÄÐÞ¸Ä

Êý¾ÝÀàÐ͵ÄÅж¨¿ÉÒÔͨ¹ý contructor£¬instanceof£¬ isPrototypeOfµÈ·½·¨ÊµÏÖ£¬¶ÔÓÚѼ×ÓÀàÐ͵ÄÅж¨»¹¿ÉÒÔʹÓà in µÄÏà¹Ø²Ù×÷¡£·ûºÅ²¢·Ç¶ÔÏ󣬶øÊÇÒ»ÖÖ¼òµ¥±êÁ¿»ù±¾ÀàÐÍ¡£

JavaScript ÖеÄÇ¿ÖÆÀàÐÍת»»×ÜÊÇ·µ»Ø»ù±¾ÀàÐÍÖµ£¬½«¶ÔÏóÇ¿ÖÆ×ª»»ÎªString ÊÇͨ¹ýToPrimitive³éÏó²Ù×÷Íê³ÉµÄ£¬¶øtoJSON£¨£©ÊÇ·µ»ØÒ»¸öÄܹ»±»×Ö·û´®»¯µÄ°²È«µÄJSONÖµ¡£

²Ù×÷·û

²Ù×÷·ûÊǿռäÔªËØÁ¬½ÓµÄŦ´øÖ®Ò»£¬JavaScript²Ù×÷·û°üÀ¨ËãÊõ£¬Á¬½Ó£¬ÏàµÈ£¬±È½Ï£¬Âß¼­£¬Î»£¬ÀàÐÍÅжϣ¬Ìõ¼þ£¬new£¬delete£¬ void£¬"£¬", ".", "[]"µÈ¡£

ÔÚJavaScriptÖÐÒÔ²Ù×÷·û½øÐвÙ×÷ÍùÍù¶¼¸½´ø×ÅÀàÐÍת»»¡£

Ò»ÔªÔËËã·û+ ÊÇÏÔÊ½Ç¿ÖÆÀàÐÍת»»£¬¶ø¡«ÊÇÏÈת»»Îª32λÊý×Ö£¬È»ºó°´Î»·´×ª¡£|| ºÍ&& ¸üÓ¦¸ÃËãÊÇÑ¡ÔñÆ÷ÔËËã·û£¬Æä·µ»ØÖµ²»Ò»¶¨ÊDz¼¶ûÖµ£¬¶øÊÇÁ½¸ö²Ù×÷ÊýÆäÖеÄÒ»¸öÖµ¡£Ò»°ãÏȶԵÚÒ»¸ö²Ù×÷Êý½øÐÐtoBooleanÇ¿ÖÆÀàÐÍת»»£¬È»ºóÔÙÖ´ÐÐÌõ¼þÅжϡ£ÀýÈ磺a||b Àí½â³Éa£¿a£ºb ¸üͨËס£¶Ô&& ¶øÑÔ£¬Èç¹ûµÚÒ»¸öÊÇÕæÖµ£¬Ôò°ÑµÚ¶þ¸ö×÷Ϊ·µ»ØÖµ£¬a&&b Àí½â³Éa?b:a ¡£

== ºÍ=== ¶¼»á¶Ô²Ù×÷Êý½øÐÐÀàÐͼì²é£¬²¢Ö´ÐÐÒþÐÔÀàÐÍת»»£¬ÐèҪעÒâµÄÊÇ£º

Èç¹ûÁ½±ßµÄÖµÖÐÓÐtrue»òfalse£¬Ç§Íò²»ÒªÊ¹ÓÃ==

Èç¹ûÁ½±ßÓÐ[],¡±¡±»òÕß0£¬¾¡Á¿²»ÒªÊ¹ÓÃ==

ÕâÀïÊÇGithubÉϹØÓÚ¸÷ÖÖÏàµÈÐԵľØÕó£º

Óï¾äÓë±í´ïʽ

²Ù×÷·ûÓë±äÁ¿£¯³£Á¿µÈÁ¬½ÓÐγÉÁËÓï¾äºÍ±í´ïʽ£¬ÀýÈç±í´ïʽa+1ÖеÄnull ±»Ç¿ÖÆ×ª»»Îª0¡£ Óï¾ä°üÀ¨ÉùÃ÷Óë¿é£¬¿ØÖÆÓï¾äÓÐÅжϣ¬Ñ­»·£¬break£¬continue£¬return£¬Òì³£µÈ¡£Ã¿¸öÓï¾ä¶¼ÓÐÒ»¸ö½á¹ûÖµ£¬ÄÄÅÂÊÇundefined¡£

ÕýÔò±í´ïʽÊǷdz£ÖØÒªµÄÒ»Àà±í´ïʽ£¬Ö÷ҪʹÓÃRegExpÀִ࣬Ðз½·¨testЧÂʸߣ¬exec »áµÃµ½Ò»¸ö½á¹û¶ÔÏóµÄÊý×é¡£

¶ººÅÔËËã·û¿ÉÒ԰Ѷà¸ö¶ÀÁ¢µÄ±í´ïʽ´®Áª³ÉÒ»¸öÓï¾ä£¬{ }ÔÚ²»Í¬Çé¿öϵÄÒâ˼²»¾¡Ïàͬ£¬×÷ΪÓï¾ä¿é£¬{ ..} ºÍfor£¯whileÑ­»·ÒÔ¼°ifÌõ¼þÓï¾äÖдúÂë¿éµÄ×÷Óûù±¾Ïàͬ¡£{a,b} ʵ¼ÊÉÏÊÇ{a:a,b:b}µÄ¼ò»¯°æ±¾¡£

try..catch..finally ÖУ¬Èç¹ûfinallyÖÐÅ׳öÒì³££¬º¯Êý»áÔÚ´Ë´¦ÖÕÖ¹¡£ÐèҪעÒâµÄÊÇ£¬Èç¹û´ËǰtryÖÐÒѾ­ÓÐreturnÉèÖÃÁË·µ»ØÖµ£¬Ôò¸ÃÖµ»á±»¶ªÆú¡£finallyÖеÄreturnÒ²»á¸²¸ÇtryºÍcatchÖеÄreturnµÄ·µ»ØÖµ¡£

º¯ÊýÓë×÷ÓÃÓò

º¯Êý¾ÍÊǾßÓÐÔËËãÂß¼­µÄ¶ÔÏó£¬ÄäÃûº¯Êý²»ÀûÓÚµ÷ÊÔ£¬»Øµ÷º¯ÊýÊÇÒ»ÖÖ¿ØÖÆ·´×ª¡£ËùÓеĺ¯Êý£¨¶ÔÏ󣩶¼¾ßÓÐÃûΪprototypeµÄÊôÐÔ£¬prototypeÊôÐÔÒýÓõĶÔÏóÊÇprototype¶ÔÏó£»ËùÓеĶÔÏ󶼺¬ÓÐÒ»¸öÒþʽÁ´½Ó£¬ÓÃÒÔÖ¸ÏòÔÚ¶ÔÏóÉú³É¹ý³ÌÖÐËùʹÓõĹ¹Ô캯ÊýµÄprototype¶ÔÏó¡£

ÄäÃûº¯ÊýûÓÐname ±êʶ·û£¬¾ßÓÐÈçÏÂȱÏÝ£º

´úÂë¸üÄÑÀí½â

µ÷ÊÔÕ»¸üÄÑ×·×Ù

×ÔÎÒÒýÓ㨵ݹ飬ʼþ£¨½â³ý£©°ó¶¨£¬µÈ£©¸üÄÑ

Èç¹ûfunctionÊÇÉùÃ÷µÄµÚÒ»¸ö´Ê£¬ÄǾÍÊǺ¯ÊýÉùÃ÷£¬·ñÔò¾ÍÊǺ¯Êý±í´ïʽ¡£Á¢¼´Ö´Ðк¯Êý±í´ïʽÐÎÈ磺£¨function ¡­)( )

ʱ¿ÕÃܲ»¿É·Ö£¬×÷ÓÃÓòÊÇʱ¿ÕÁ¬½ÓµÄŦ´øÖ®Ò»¡£×÷ÓÃÓò°üÀ¨È«¾Ö£¬º¯Êý£¬¿é¼¶×÷ÓÃÓò¡£×÷ÓÃÓòÊǸù¾ÝÃû³Æ²éÕÒ±äÁ¿µÄÒ»Ì×¹æÔò£¬±éÀúǶÌ××÷ÓÃÓòÁ´µÄ¹æÔò¼òµ¥£ºÒýÇæ´Óµ±Ç°Ö´ÐÐ×÷ÓÃÓòÖð¼¶ÏòÉϲéÕÒ¡£±Õ°ü¿ÉÒÔÀí½âΪ¾ßÓÐ״̬µÄº¯Êý¡£

º¯Êý×÷ÓÃÓòÖ¸ÊôÓÚÕâ¸öº¯ÊýµÄÈ«²¿±äÁ¿¶¼¿ÉÒÔÔÚÕû¸öº¯ÊýµÄ·¶Î§ÄÚʹÓûò¸´Ó᣿é×÷ÓÃÓòÐÎÈç with£¬ try£¯catch£¬ ES6 ÒýÈëÁËlet£¬constµÈ¡£

¶¯Ì¬×÷ÓÃÓò²¢²»¹ØÐĺ¯ÊýºÍ×÷ÓÃÓòÊÇÈçºÎÉùÃ÷ÒÔ¼°Ôںδ¦ÉùÃ÷µÄ£¬Ö»¹ØÐÄËüÃǴӺ䦵÷Óõġ£´Ê·¨×÷ÓÃÓòÊǶ¨ÒåÔÚ´Ê·¨·ÖÎö½×¶ÎµÄ×÷ÓÃÓò£¬´Ê·¨×÷ÓÃÓò²éÕÒ»áÔÚµÚÒ»¸öÆ¥ÅäµÄ±êʶ·ûʱֹͣ¡£×÷ÓÃÓòÁ´ÊÇ»ùÓÚµ÷ÓÃÕ»µÄ£¬¶ø²»ÊÇ´úÂëÖеÄ×÷ÓÃÓòǶÌס£ReferenceError ÊÇÓë×÷ÓÃÓòÅбðʧ°ÜÏà¹Ø£¬¶øTypeErrorÔòÊÇ×÷ÓÃÓòÅбð³É¹¦£¬µ«ÊǶԽá¹ûµÄ²Ù×÷·Ç·¨»ò²»ºÏÀí¡£

this ÌṩÁËÒ»ÖÖÓÅÑÅ·½Ê½À´Òþʽ¡°´«µÝ¡±Ò»¸ö¶ÔÏóÒýÓᣠthis ¼´Ã»ÓÐÖ¸Ïòº¯ÊýµÄ×ÔÉí£¬Ò²Ã»ÓÐÖ¸Ïòº¯ÊýµÄ×÷ÓÃÓò£¬ÊÇÔÚº¯Êý±»µ÷ÓÃʱ·¢ÉúµÄ°ó¶¨£¬ËüÖ¸ÏòʲôÍêȫȡ¾öÓÚº¯ÊýÔÚÄÄÀï±»µ÷Óá£Èç¹û·ÖÎöthis°ó¶¨µÄ»°£¬¿ÉÒÔʹÓõ÷ÊÔ¹¤¾ßµÃµ½µ÷ÓÃÕ»£¬È»ºóÕÒµ½Õ»Öеĵڶþ¸öÔªËØ£¬¾ÍÊÇÕæÕýµÄµ÷ÓÃλÖá£

this µÄ°ó¶¨¹æÔòÓУº

ĬÈϰ󶨣º¶ÀÁ¢µÄº¯Êýµ÷Óã¬Ñϸñģʽ²»Äܽ«È«¾Ö¶ÔÏóÓÃÓÚĬÈϰó¶¨

Òþʽ°ó¶¨£º°Ñº¯Êýµ÷ÓÃÖеÄthis °ó¶¨µ½º¯ÊýÒýÓÃÖеÄÉÏÏÂÎĶÔÏó

ÏÔʽ°ó¶¨£ºÍ¨¹ýcall£¨£©ºÍapply£¨£©·½·¨¿ÉÒÔÖ±½ÓÖ¸¶¨thisµÄ°ó¶¨¶ÔÏ󡣯äÖУ¬Ó²°ó¶¨ÊÇÒ»ÖÖÏÔʽµÄÇ¿ÖÆ°ó¶¨£¬ES5ÖÐÌṩÁËÄÚÖ÷½·¨Function.prototype.bind, APIÖе÷ÓõÄÉÏÏÂÎĺÍbindµÄ×÷ÓÃÒ»Ñù¡£

new °ó¶¨£¬¹¹Ô캯ÊýÖ»ÊÇһЩʹÓÃnew²Ù×÷·ûµ÷Óõĺ¯£¬ ʹÓÃnew À´µ÷Óú¯ÊýµÄ²Ù×÷¹ý³Ì´óÖÂÈçÏÂ:

´´½¨Ò»¸öȫеĶÔÏó

Õâ¸öжÔÏó»á±»Ö´ÐÐ[[Prototype]]Á´½Ó

Õâ¸öжÔÏó»á°ó¶¨µ½º¯Êýµ÷ÓõÄthis

Èç¹ûº¯ÊýûÓзµ»ØÆäËû¶ÔÏó£¬ÄÇônew±í´ïʽÖеĺ¯Êýµ÷Óûá×Ô¶¯·µ»ØÕâ¸öжÔÏó

Èç¹ûͬʱ´æÔÚ¶àÖְ󶨣¬ÄÇô°ó¶¨µÄÓÅÏȼ¶´óÖÂÈçÏ£º

ÓÉnewµ÷Óð󶨵½Ð´´½¨µÄ¶ÔÏó

ÓÉcall »òÕßapply£¨»òbind£©µ÷Óð󶨵½Ö¸¶¨µÄ¶ÔÏó

ÓÉÉÏÏÂÎĶÔÏóµ÷Óð󶨵½ÄǸöÉÏÏÂÎĶÔÏó

ĬÈÏÔÚÔÚÑϸñģʽϰ󶨵½undefined£¬·ñÔò°ó¶¨µ½È«¾Ö¶ÔÏó

¸ü°²È«µØÊ¹ÓÃthis °ó¶¨µÄ×ö·¨ÊÇ´«ÈëÒ»¸öÌØÊâµÄ¶ÔÏ󣬰Ñthis °ó¶¨µ½Õâ¸ö¶ÔÏó¡£ÐèҪעÒâµÄÊÇ£¬¼ýÍ·º¯Êý²»Ê¹ÓÃthisµÄ4ÖÖ¹æÔò£¬¶øÊǸù¾ÝÍâ²ã£¨º¯Êý»òÈ«¾Ö£©×÷ÓÃÓòÀ´¾ö¶¨this¡£

»¹Òª×¢ÒâÒ»µã£¬eval ºÍ with »áµ¼ÖÂ×÷ÓÃÓò±ä»¯¶øÒýÆðÐÔÄÜϽµ£¬¾¡Á¿²»ÒªÊ¹Óá£eval£¨£© º¯ÊýÖеÄ×Ö·û´®ÊÇ´úÂ룬ÓÃÀ´Ö´Ðж¯Ì¬´´½¨µÄ´úÂ룬ÑϸñģʽÓÐ×Ô¼ºµÄ×÷ÓÃÓò£¬»¹´æÔÚ°²È«Òþ»¼£»with ÊÇÖØ¸´ÒýÓÃÒ»¸ö¶ÔÏóÖеĶà¸öÊôÐԵĿì½Ý·½Ê½£¬Í¨¹ý½«Ò»¸ö¶ÔÏóµÄÒýÓõ±×÷×÷ÓÃÓòÀ´´¦Àí£¬»á¸Ä±ä×÷ÓÃÓò·¶Î§¡£

´¦ÀíºÍÖ´Ðз½Ê½

JavaScriptÒýÇæ±¾ÉíûÓÐʱ¼ä¸ÅÄֻÊÇÒ»¸ö°´ÐèÖ´ÐÐÈÎÒâ´úÂëÆ¬¶ÎµÄ»·¾³£¬Ê¼þµ÷¶È×ÜÊÇÓɰüº¬ËüµÄËÞÖ÷»·¾³À´Ö´ÐС£Ò»µ©ÓÐʼþÐèÒªÔËÐУ¬Ê¼þÑ­»·¶ÓÁоͻáÔËÐУ¬Ö±µ½¶ÓÁÐÇå¿Õ£¬Óû§½»»¥¡¢IOºÍ¶¨Ê±Æ÷µÈʼþÔ´»áÏòʼþ¶ÓÁмÓÈëʼþ¡£

ÓÉÓÚJavaScriptµÄµ¥Ïß³ÌÌØÐÔ£¬ºÜ¶àº¯ÊýµÄ´úÂë¾ßÓÐÔ­×ÓÐÔ¡£

»Øµ÷º¯Êý·â×°Á˳ÌÐòµÄÑÓÐøÐÔ£¬³£¼ûÉè¼ÆÊÇ·ÖÀë»Øµ÷£¨Ò»¸öÓÃÓڳɹ¦Í¨Öª£¬Ò»¸öÓÃÓÚ³ö´í֪ͨ£©¡£ÁíÒ»Öֻص÷ģʽÊÇ¡°error-first¡±£¬¿ÉÄÜÊܵ½·ÀÓùʽ±à³ÌµÄÓ°Ï죬NodeJS API ²ÉÓÃÁË´ËÀàµÄ·ç¸ñ£¬Èç¹û³É¹¦µÄ»°£¬Õâ¸ö²ÎÊý¾Í»á±»Çå¿Õ¡£ÐèҪעÒâµÄÊÇ£¬»Øµ÷º¯ÊýµÄǶÌ×ÍùÍù³ÆÎª»Øµ÷µØÓü¡£

DeferredÊÇÒ»ÖÖ½«Òì²½´¦Àí´®ÁªÊéд²¢Ö´ÐеĻúÖÆ£¬Deferred¶ÔÏóÊÇÒ»ÖÖ¾ßÓÐunresolved,resolved,rejected ÖÐijһÖÖ״̬µÄ¶ÔÏó¡£DeferredÄÚ²¿»úÖÆÊÇÏÈ×¢²á»Øµ÷º¯Êý£¬Deferred¶ÔÏó״̬·¢Éú±ä»¯Ê±Ö´Ðиú¯Êý£¬ÊÇÒ»ÖÖÌá¸ß´úÂë¿É¶ÁÐԵĻúÖÆ¡£

Deferred¶ÔÏóµÄ×´Ì¬Ç¨ÒÆÖ»ÄÜ·¢ÉúÒ»´Î£¬ÒÔthen(),done(),fail(),always(),pipe()Ö¸¶¨ºóÐøº¯ÊýµÄ·½·¨£¬Í¨¹ýwhen£¨£©À´²¢Ðд¦Àí£¬½«Deferred ¶ÔÏóÖеÄÒ»²¿·Ö·½·¨É¾³ýºóµÃµ½ÊÇPromise¶ÔÏ󣬶Ô״̬µÄ¹ÜÀíÓÉ×î³õ´´½¨¸ÃDeferred¶ÔÏóµÄËùÓÐÕßÀ´Ö´ÐС£

Promise ·â×°ÁËÒÀÀµÓÚʱ¼äµÄ״̬£¬´Ó¶øÊ¹µÃ±¾ÉíÓëʱ¼äÎ޹أ¬Promise ¿ÉÒÔ°´ÕÕ¿ÉÔ¤²âµÄ·½Ê½½øÐУ¬¶ø²»ÓùØÐÄʱÐò»òµ×²ãµÄ½á¹û¡£Ò»µ©Promise¾öÒéÍê³É£¬¾Í³ÉΪÁ˲»±äÖµ£¬¿ÉÒÔ°²È«µØ°ÉÕâ¸öÖµ´«µÝ¸øµÚÈý·½£¬²¢È·±£²»»á¸Ä±ä¡£

Promise ÊÇÒ»ÖÖÔÚÒì²½ÈÎÎñÖÐ×÷ΪÁ½¸ö»ò¸ü¶à²½ÖèµÄÁ÷³Ì¿ØÖÆ»úÖÆ£¬Ê±ÐòÉϵÄthis-then-that¡£ ²»½ö±í´ïÁ˶ಽÒì²½ÐòÁеÄÁ÷³Ì¿ØÖÆ£¬»¹ÊÇÒ»¸ö´ÓÒ»¸ö²½Öèµ½ÏÂÒ»¸ö²½Öè´«µÝÏûÏ¢µÄÏûϢͨµÀ¡£Ê¼þ¼àÌý¶ÔÏó¿ÉÒÔµ±³ÉÊǶÔpromise µÄÒ»ÖÖÄ£Ä⣬¶Ô¿ØÖÆ·´×ªµÄ»Ö¸´ÊµÏÖÁ˸üºÃµÄ¹Ø×¢µã·ÖÀë¡£

ÅжÏÊÇ·ñÊÇPromise ÖµµÄʾÀý´úÂëÈçÏ£º

if£¨
p !==null &&
( typeof p ===¡°object¡± || typeof p ===¡°function¡±) && typeof p.then===¡°function¡±)
{
console.log(¡°thenable¡±);
}
else{
console.log(¡°not thenable¡±);
}

Éú³ÉÆ÷ÊÇÒ»ÀàÌØÊâµÄº¯Êý£¬¿ÉÒÔÒ»´Î»ò¶à´ÎÆô¶¯ºÍÍ£Ö¹£¬²¢²»·ÇµÄÒ»¶¨ÒªÍê³É£¬Éú³ÉÆ÷°Ñwhile true ´ø»ØÁËJavascriptµÄÊÀ½ç¡£ÆäÖУ¬yield ίÍеÄÖ÷ҪĿµÄÊÇ´úÂë×éÖ¯£¬ÒÔ´ïµ½ÓëÆÕͨº¯Êýµ÷ÓõĶԳơ£´ÓÉú³ÉÆ÷yield³öÒ»¸öPromise£¬ ²¢ÇÒÈÃÕâ¸öPromise ͨ¹ýÒ»¸ö¸¨Öúº¯Êý»Ö¸´Õâ¸öÉú³ÉÆ÷£¬ÕâÊÇͨ¹ýÉú³ÉÆ÷¹ÜÀíÒì²½µÄºÃ·½·¨Ö®Ò»¡£

ÐèҪעÒâµÄÊÇ£¬Èç¹ûÔÚPromise.all([..]) Öд«Èë¿ÕÊý×飬»áÁ¢¼´Íê³É£¬ ¶øPromise.race([..]) Ôò»á¹Òס¡£ ÔÚ¸÷ÖÖPromise¿âÖУ¬finally £¨ .. ) »¹Êǻᴴ½¨²¢·µ»ØÒ»¸öÐÂPromiseµÄ¡£

Ä£¿éÓë¿â

Ä£¿éºÍ¿âÊÇJavaScript ʱ¿ÕÖеÄÁíһŦ´ø£¬Ìá¸ßÁË´úÂëµÄ¸´ÓÃÐԺͿª·¢Ð§ÂÊ¡£

Ä£¿é³ä·ÖÀûÓÃÁ˱հüµÄÇ¿´óÄÜÁ¦£¬´ÓÄ£¿éÖзµ»ØÒ»¸öʵ¼ÊµÄ¶ÔÏó²¢²»ÊDZØÐëµÄ£¬Ò²¿ÉÒÔÖ±½Ó·µ»ØÒ»¸öÄÚ²¿º¯Êý£¬ÀýÈ磺jQauery ºÍ $±êʶ·û¾ÍÊÇjQuery Ä£¿éµÄ¹«¹²API¡£

Ä£¿éÓÐÁ½¸ö±ØÒªÌõ¼þ£º

±ØÐëÓÐÍⲿµÄ·â±Õº¯Êý£¬¸Ãº¯Êý±ØÐëÖÁÉÙ±»µ÷ÓÃÒ»´Î

·â±Õº¯Êý±ØÐë·µ»ØÖÁÉÙÒ»¸öÄÚ²¿º¯Êý£¬ÕâÑùÄÚ²¿º¯Êý²ÅÄÜÔÚ˽ÓÐ×÷ÓÃÓòÖÐÐγɱհü£¬²¢ÇÒ¿ÉÒÔ·ÃÎÊ»òÐÞ¸Ä˽ÓеÄ״̬

import ¿ÉÒÔ½«Ò»¸öÄ£¿éµÄÒ»¸ö»ò¶à¸öAPIµ¼Èëµ½µ±Ç°×÷ÓÃÓòÖУ¬²¢·Ö±ð°ó¶¨ÔÚÒ»¸ö±äÁ¿ÉÏ£»module Ôò½«Õû¸öÄ£¿éµÄAPI µ¼Èë²¢°ó¶¨µ½Ò»¸ö±äÁ¿ÉÏ£¬ export ½«µ±Ç°Ä£¿éµÄÒ»¸ö±êʶ·ûµ¼³öΪ¹«¹²API¡£

´ó¶àÊýÄ£¿éËùÒÀÀµµÄ¼ÓÔØÆ÷£¯¹ÜÀíÆ÷±¾ÖÊÉÏÊǽ«ÕâÖÖÄ£¿é¶¨Òå·â×°½øÒ»¸öAPI¡£»ùÓÚº¯ÊýµÄÄ£¿é²¢²»ÊÇÒ»¸öÄܱ»¾²Ì¬Ê¶±ðµÄģʽ£¨±àÒëÆ÷£©£¬API¶¨ÒåÖ»ÓÐÔÚÔËÐÐʱ¿¼ÂǽøÀ´¡£µ«ÊÇES6 Ä£¿éµÄAPI ÊǾ²Ì¬µÄ£¬±ØÐë±»¶¨ÒåÔÚ¶ÀÁ¢µÄÎļþÖС£

JavaScript ÖÐµÄ¿âºÆÈçÑ̺££¬ÕâÀï½ö¶ÔJQuery×ö¼òҪ˵Ã÷¡£JQueryѹËõºó´óÔ¼31k£¬ÇáÇÉÁé»î£¬Í¨¹ýÁ´Ê½Ó﷨ʵÏÖÂß¼­¹¦ÄÜ£¬Í¨¹ýCSS3Ñ¡ÔñÆ÷¼°×Ô¶¨ÒåÑ¡ÔñÆ÷»ñÈ¡ÔªËØ£¬Ö§³Ö²å¼þ£¬¿ÉÀ©Õ¹ÐԸߡ£

JQueryÖÐ µÄÌØÉ«º¯Êý¡ª¡ª$ £¬¿ÉÒÔ³éÈ¡ÓëÑ¡ÔñÆ÷Æ¥ÅäµÄÔªËØ£¬»òÕß´´½¨ÐµÄDOMÔªËØ£¬½«ÒÑÓеÄDOMÔªËØ×ª»»ÎªjQuery¶ÔÏ󣬶ÔDOM¹¹ÔìÍê³ÉºóµÄʼþ¼àÌýÆ÷½øÐÐÉ趨µÈµÈ¡£JQuery ¶ÔDOM£¬Ñùʽ£¬AJAX ¾ù¿ÉÓÐЧ´¦Àí¡£

ͨ¹ýÀ©Õ¹JQuery.fn ¾Í¿ÉÒÔ´´½¨JQueryµÄ²å¼þ£¬ code.google.com/apis/libraries ¸ø³öÁ˺ܶàJQuery µÄ²å¼þÐÅÏ¢¡£

ÀûÓÃJavaScript µÄʱ¿Õ¹Û£¬¿ÉÒÔ¶ÔÕâÒ»ÓïÑÔÓÐһЩ»ù±¾µÄÊáÀí¡£¾ÍÓïÑÔ±¾Éí¶øÑÔ£¬¹Ø¼ü×ÖÊDz»Äܻرܵ쬶ÔJavaScript ¹Ø¼ü×Ö£¬ÔÚStackOverFlowÖÐÓÐÈ˸ø³öÁËÈçÏÂʫһÑùµÄ×ܽ᣺

Let this long package float£¬
Goto private class if short¡£
While protected with debug case£¬
Continue volatile interface¡£
Instanceof super synchronized throw£¬
Extends final export throws.

Try import double enum?
-False, boolean, abstract function.
Implements typeof transient break!
Void static,default do,
Switch int native new,
else, delete null public var,
In return for const, true, char,
¡­¡­ finally catch byte.

¿Í»§¶ËÓ¦ÓÃ

Ò»ÃÅÓïÑÔËù±»Ê¹ÓõĹ㷺³Ì¶ÈÈ¡¾öÓÚʹÓõij¡¾°£¬ÕýÈçPHP±»¹ã·º²ÉÓÃÄÇÑù£¬»¥ÁªÍøÓ¦Óò»½öÊÇJavaScript µÄ¼ÒÏ磬¶øÇÒÊÇËü´óÕ¹ÉíÊÖµÄ×îÖØÒª³¡Ëù£¬Ã»ÓÐJavaScript µÄWebÓ¦Óü¸ºõ¾ø¼£ÁË¡£

webÓ¦ÓÃÖÐʹÓÃJavaScriptÓÐÍÏ×§²Ù×÷£¬Òì²½¶ÁÈ¡£¬¼üÅÌ·ÃÎÊ ºÍ¶¯»­Ð§¹ûµÈ»ù±¾¹¦ÄÜ¡£¶ÔÓÚÇåÎúµØÊ¹ÓÃJavaScriptʵÏÖWebÓ¦ÓöøÑÔ£¬Àí½âä¯ÀÀÆ÷ÍøÒ³´¦Àí¹ý³ÌÊDZØÒªµÄ¡£Ò»°ãµØ£¬ä¯ÀÀÆ÷ÏÈ·ÖÎöHTML£¬È»ºó¹¹ÔìDOMÊ÷£¬ÔÙÔØÈëÍⲿJavascript ÎļþÒÔ¼°CSSÎļþ£¬½ÓÏÂÀ´ÔØÈëͼÏñÎļþµÈÍⲿ×ÊÔ´£¬×îºóÔÚ·ÖÎöJavascriptºó¿ªÊ¼Ö´ÐÐÖÁÈ«²¿Íê³É¡£

ÔÚHTMLÖмÓÔØJavaScriptµÄ·½Ê½ÓжàÖÖ£º

<script> ±êÇ©£¬ÔÚbody ½áÊø±êǩǰд

¶ÁÈ¡ÍⲿJavaScript Îļþ£¬¶ÁÈ¡Íê¾Í¿ªÊ¼Ö´ÐУ¬ä¯ÀÀÆ÷¿ÉÒÔ»º´æ

onload ʼþ¼ÓÔØ

DOMContentLoadedÊÇÔÚÍê³ÉHTML½âÎöºó·¢ÉúµÄʼþ£¬Ò²¿ÉÒÔÓÃÓÚ¼ÓÔØJavaScript

¶¯Ì¬ÔØÈ룬ÕâÑùJSÔÚÔØÈëʱ²»»á×è¶ÏÆäËû²Ù×÷,Èç

var script = document.createElement(¡®script¡¯);

script.src = ¡®my-javascript.js¡¯£»

document.getElementsByTagName(¡®head¡¯)[0].appendChild(script)

window¶ÔÏóÊÇJavaScriptËùÄܲÙ×÷µÄ×î¸ß²ã¶ÔÏ󣬯äÖеÄÊôÐÔ°üÀ¨navigator£¬location£¬history£¬screen£¬frames£¬document£¬parent£¬top£¬self µÈ¡£

DOM ÊÇÒ»ÖÖAPI£¬Íê³É¶ÔHTML£¯XML µÄÊ÷Ðνṹ·ÃÎÊ£¬Èç±êÇ©£¬ÔªËØ£¬½ÚµãµÈ¡£½Úµã¿ÉÒÔͨ¹ýID£¬±êÇ©Ãû£¬Ãû³ÆºÍÀàÃû½øÐмìË÷£¬ÀýÈ磺

var element = document.getElementById(¡°abel¡±)
var allelements = document.getElementByTagName(¡®*¡¯)

ÓÉÓÚ·µ»ØµÄÊÇNodeList¶ÔÏó£¬ÐÔÄܽϲ¿ÉÒÔͨ¹ý var array = Array.prototye.slice.call (allelements)ת»»Îªarray ºó´¦Àí¡£½ÚµãµÄ·ÃÎÊ¿ÉÒÔͨ¹ýXPath ½øÐÐÁé»îµÄ·ÃÎÊ£¬µ±È»£¬Selector API ±ÈXPath¸ü¼òµ¥ÇÒͬÑùÁé»î£¬ÀýÈ磺

var a_label = document.querySelector(¡®#abel¡¯)
var b_all = document.querySelectorAll(¡®div¡¯)

Èç¹ûÏÈÐÞ¸ÄDocumentFragment£¬ÔÙ¶Ôʵ¼ÊµÄdocument¶ÔÏó²Ù×÷£¬DOM µÄ²Ù×÷ÐÔÄÜ»á½Ï¸ßһЩ¡£

ʼþÕìÌýÆ÷µÄÉ趨¿ÉÒÔÖÆ¶¨HTMLÔªËØµÄÊôÐÔ£¬Ò²¿ÉÒÔÖ¸¶¨DOMÔªËØµÄÊôÐÔ£¬»¹¿ÉÒÔͨ¹ýEventTarget.addEventListenser()½øÐÐÖ¸¶¨¡£Ê¼þµÄ´¦Àí°üÀ¨²¶»ñ£¬Ä¿±ê´¦ÀíºÍʼþðÅÝÈý¸ö½×¶Î£¬²¶»ñµÄ¹ý³ÌÊÇ£º

window -> document -> html -> body -> div -> button

È»ºó´¦ÀíÆ÷Ö´ÐÐ,ðÅÝÏòÉÏ´«²¥µÄ¹ý³ÌÊDZéÀúDOMÊ÷£¬ÐèҪעÒâµÄÊÇ focus ²»»áðÅÝ¡£

DOM2Öеıê׼ʼþÓÐHTMLEvent£¬MouseEvent£¬UIEventºÍMutationEvent¡£DOM3 ÖеÄʼþ¸ü¶à£ºUIEvent£¬FocusEvent£¬MouseEvent£¬ WheelEvent£¬ TextEvent£¬KeyboardEvent ºÍcompositionEventµÈ£¬»¹¿ÉÒÔͨdocument.createEventÀ´×Ô¶¨Òåʼþ¡£

ͨ¹ýJavaScript ¶ÔCSSÑùʽ±ä¸üµÄ·½·¨ÓÐͨ¹ýclassName ÊôÐÔ±ä¸üclassÃû£¬Í¨¹ýclassListÊôÐÔ¸ü¸ÄclassÃû£¨ÆäÖÐclassList ÊÇH5¶ÔDOM TokenList½Ó¿ÚµÄʵÏÖ£©£¬»¹¿ÉÒÔ¸ü¸ÄStyle ÊôÐÔ»òÕßÖ±½Ó¸ü¸ÄÑùʽ±í¡£Í¨¹ýJavaScript¿ÉÒÔ¶ÔÆÁĻλÖã¨screenX£¬screenY£©£¬´°¿ÚλÖã¨clientX£¬clientY£©£¬Îĵµ×ø±ê£¨pageX£¬pageY£¬ÓÉä¯ÀÀÆ÷×ÔÐÐʵÏֵģ©£¬Ìض¨ÔªËØÄÚµÄÏà¶ÔλÖã¨layerX£¬layerY »òoffsetX offsetY£©½øÐÐÐ޸ġ£Í¨¹ýJavaScript¿ÉÒÔ¶Ô±íµ¥ÖеÄÔªËØ£¬¿Ø¼þºÍÄÚÈݽøÐÐÑéÖ¤£¬¿ÉÓÃÓÚÑéÖ¤µÄʼþÓÐsubmit£¬focus£¬blur£¬change£¬keydown/up/press£¬input¡£Ê¹ÓÃ±íµ¥¶ø²»²úÉúÒ³ÃæÌø×ªµÄ·½Ê½¿ÉÒÔÊÇÖ¸Ïòµ½Ò»¸ö £¨0,0 £©µÄ¿Õiframe¡£

¶ÔÓÚ¶¯»­¶øÑÔ£¬cssµÄ¶¯»­ÐÔÄÜÒ»°ãÒª¸üºÃһЩ¡£

AJAX ÔÚWebÓ¦ÓÃÖÐÊDz»¿É»òȱµÄ£¬¼òµ¥µØËµ£¬ÊÇÒ»ÖÖ²»·¢ÉúÒ³ÃæÌø×ª¾ÍÄÜÒì²½ÔØÈëÄÚÈݲ¢¸ÄÐ´Ò³ÃæÄÚÈݵļ¼Êõ£¬Ö÷Ҫͨ¹ý XMLHttpRequest ¶ÔÏóµÄ´´½¨£¬ÊµÏÖͨ£¯Ò첽ͨÐÅ£¬´¦Àí³¬Ê±ºÍÏìÓ¦¡£AJAXÓÐ×Å¿çÔ´ÏÞÖÆ£¬ÊµÏÖ¿çԴͨÐŵķ½Ê½ÓУºJSONP£¬iframe hack£¬window.postMessage() ÒÔ¼° XMLHttpRequest Level 2¡£

HTML5+CSS3+JavaScriptµÄ×ÛºÏʹÓòſÉÄܳɾÍÒ»¸öWebÓ¦Óá£H5ÖÐµÄ History API ʹÓÃÁËwindowÊôÐÔµÄhistory¶ÔÏó¼àÌýpopstateʼþ£¬ÓÃÓÚ»Ö¸´Ò³Ãæ×´Ì¬µÄ´¦Àí¡£ApplicationCache ÔÚhtml±êÇ©µÄmanifest ÊôÐÔÖÐÖ¸¶¨ÁË»º´æÇåµ¥ÎļþµÄ·¾¶£¬±ØÐëͨ¹ýtext/cache-manifest ÕâÒ»MIME type À´·¢²¼»º´æÇåµ¥Îļþ£¬×¢ÒâÇåµ¥ÖеÄCACHE£¬NETWORK£¬ºÍFALLBACK µÄÇø·Ö¡£

ͨ¹ýnavigator.onLine ¿ÉÒÔ»ñÖªÍøÂç״̬£¬»¹¿ÉÒÔͨ¹ýonline/offlineʼþÀ´ÕìÌýÁ¬½Ó״̬µÄÇл»Ê±»ú¡£online/offlineʼþÊÇdocument.body ´¥·¢µÄ£¬²¢´«¸ødocument¶ÔÏóºÍwindow¶ÔÏó¡£

<p> network is : <span id = ¡°indicator¡±> (state unknown) </span> </p>
<script>
{
function updateIndicator = document.getElementById(¡®indicator¡¯);
indicator.textContext = navigator.online?¡¯online¡¯:¡¯offline¡¯;
}
document.body.onload = updateIndicator;
document.body.ononline= updateIndicator;
document.body.onoffline = updateIndicator;
</script>

DataTransfer ÊÇDrag Drop API µÄºËÐÄ£¬ÔÚËùÓÐÍÏקʼþµÄʼþ¶ÔÏóÖУ¬¶¼ÓиÃÊôÐÔ£¬Ö÷ÒªÊǽÓÊÕÊý¾Ý¡£ÍÏ×§Îļþ´Óä¯ÀÀÆ÷±£´æµ½×ÀÃæ£ºevent.dataTransfer.setData(¡®DownloadURL¡¯,¡¯MIMETYPE: Îļþurl¡¯£©ÀýÈ磺

<a href=¡°http://a.b.c/abel.pdf¡±
data-downloadurl = ¡°application/pdf:abel.pdf: http://a.b.c/abel.pdf¡±
class=¡°dragout¡± draggable = ¡°true¡±>download </a>
<script>
var files = document .querySelectorAll (¡®.dragout¡¯);
for (var i = 0, file; file =files[i];i++) {
file.addEventListener (¡®dragstart¡¯, function(event){
event.dataTransfer.setData (¡°DownloadURL¡±, this.dataset.downloadurl);
},false);
}
</script>

FileAPI ͨ¹ýFileReader ¶ÁÈ¡Îļþ£¬Ò²¿ÉÒÔ¶ÁÈ¡dataURL£¬FileReaderSync ÓÃÓÚͬ²½¶ÁÈ¡ÎļþÄÚÈÝ£¬¿ÉÒÔÔÚWeb Worker ÖÐʹÓá£

Web Storage ΪËùÓÐÔ´¹²Ïí5M¿Õ¼ä£¬localStorage ºÍsessionStorage µÄÇø±ðÔÚÓÚÊý¾ÝµÄÉúÃüÖÜÆÚ¡£cookie ×î´ó4k£¬·¢ÇëÇóʱһÆð·¢ËÍ£¬±£´æ»á»°µÈÖØÒªÐÅÏ¢¡£indexedDB ¿ÉÒÔ¹éΪÎĵµÐÍÊý¾Ý¿â, ×÷Ϊ¿Í»§¶Ë´æ´¢ÓÖһѡÔñ¡£

var indexdb = window.indexDB || window.webkitIndexedDB ||window.mozIndexedDB;

Web worker ÊÇH5 µÄÐÂÌØÐÔ£¬ÊÇËÞÖ÷»·¾³£¨ä¯ÀÀÆ÷£©µÄ¹¦ÄÜ£¬JavaScript ±¾ÉíÊDz»Ö§³Ö¶àÏ̵߳ġ£×¨ÓõÄworker Óë´´½¨ËüµÄ³ÌÐòÖ®¼äÊÇÒ»¶ÔÒ»µÄ¹ØÏµ¡£

Web worker ÄÜÔÚÁíÍâµÄÏß³ÌÖд´½¨ÐµÄJavascript ÔËÐл·¾³£¬Ê¹JavaScripts¿ÉÒÔÔÚºǫ́´¦Àí¡£Ö÷Ï̺߳͹¤×÷Ï̷߳ÖÀ룬ÎÞ·¨Ê¹ÓöԷ½»·¾³µÄ±äÁ¿¡£¹¤×÷Ïß³ÌÎÞ·¨ÒýÓÃdocument¶ÔÏó£¬ÐèҪͨ¹ýÏûÏ¢ÊÕ·¢Íê³ÉÊý¾Ý´«µÝ¡£ ÔÚÖ÷Ï̴߳´½¨¹¤×÷Ị̈߳¬´óÔ¼Ïòvar worker = new Worker(¡®work.js¡¯)ÕâÑù ÔÚÖ÷Ïß³ÌÖÐÍ£Ö¹workerµÄ·½Ê½ÊÇworker.terminate(); worker ×ÔÉíÍ£Ö¹µÄ·½Ê½ÊÇ self.close();worker ÖÐ ¿ÉÒÔͨ¸ö importScripts ·½·¨£¬ÔÚ¹¤×÷Ïß³ÌÄÚ¶ÁÈ¡ÍⲿµÄÎļþ¡£

Á˽âÁËÕâЩ»ù´¡·½Ê½ºÍ·½·¨£¬½ö½öÊÇWebÓ¦ÓÃÖÐJavaScript¿ª·¢µÄµÚÒ»²½°É¡£

·þÎñ¶ËÓ¦ÓÃ

¼¼Êõϵͳ×ÜÊÇÓÖ×ÅÏò³¬ÏµÍ³½ø»¯µÄÇ÷ÊÆ£¬JavaScript Ò²²»ÀýÍâ¡£

JavaScript Ó¦ÓÃÓÚ·þÎñ¶ËµÄ¿ª·¢Ô´ÓÚ2009Äê³õ³öÏÖµÄCommonJS£¬ºóÀ´³ÉΪΪÁË·þÎñÆ÷¶ËjavaScriptµÄ¹æ·¶¡£»ùÓÚJavaScriptûÓÐÄ£¿éϵͳ¡¢±ê×¼¿â½ÏÉÙ¡¢È±·¦°ü¹ÜÀí¹¤¾ßµÈÏÖ×´£¬CommonJS¹æ·¶Ï£ÍûJavaScript¿ÉÒÔÔÚÈκεط½ÔËÐУ¬ÒÔ´ïµ½Java¡¢C#¡¢PHPÕâЩºǫ́ÓïÑԾ߱¸¿ª·¢´óÐÍÓ¦ÓõÄÄÜÁ¦¡£CommonJSÊÇÒ»ÖÖ˼Ï룬ËüµÄÖÕ¼«Ä¿±êÊÇʹӦÓóÌÐò¿ª·¢Õ߸ù¾ÝCommonJS API±àдµÄJavaScriptÓ¦ÓÿÉÒÔÔÚ²»Í¬µÄJavaScript½âÎöÆ÷ºÍHOST»·¾³ÉÏÔËÐУ¬ÀýÈç±àд·þÎñ¶ËÓ¦Óã¬ÃüÁîÐй¤¾ß£¬»ùÓÚGUIµÄ×ÀÃæÓ¦ÓúͻìºÏÓ¦Óñà³ÌµÈ£¬ÏêÇé²Î¼Ó www.commonjs.org ¡£

NodeJS¿ÉÒÔÀí½â³ÉCommonJS¹æ·¶µÄÒ»ÖÖʵÏÖ£¬¶øÇÒÊDz¿·ÖʵÏÖ¡£NodeJSÒÔV8×÷ΪJavaScriptµÄʵÏÖÒýÇæ£¬Í¨ÓõÄÒì²½´¦ÀíʼþÑ­»·£¬ÌṩÁËһϵÁзÇ×èÈûº¯Êý¿âÀ´Ö§³Öʵ¼ùÑ­»·ÌØÐÔ¡£Í¬Ê±£¬NodeJSÌṩÁ˸߶ÈÓÅ»¯µÄÓ¦Óÿ⣬À´Ìá¸ß·þÎñÆ÷ЧÂÊ£¬ÀýÈçÆähttp Ä£¿éÊÇΪ¿ìËÙ·Ç×èÈûʽhttp·þÎñ¶øÓÃCÓïÑÔÖØÐ´µÄ¡£ÁíÍ⣬NodeJS»¹ÓÐshellµÄÃüÁîÐй¤¾ß£¬Í¨¹ý°üϵͳʵÏÖÀ©Õ¹£¬À©Õ¹Áбí¿ÉÒÔÏêÇé²Î¼û£º GitHub.com/node/wiki/modules¡£

JavaScript ÖеÄÖ÷ҪʵÏÖÒýÇæ°üÀ¨£ºIE²ÉÓõÄJScript£¬Firefox²ÉÓõÄSpiderMoneky£¬Chrome ²ÉÓõÄV8£¬Safari²ÉÓõÄwebkitÖÐµÄ javacriptcoreµÆ¡£Èç¹ûÒª¶ÔÒýÇæÓнøÒ»²½µÄÁ˽⣬¿ÉÒÔÑжÁÒ»ÏÂjavascriptcoreµÈÏà¹ØµÄÔ´´úÂë¡£

V8 ÊÇNodeJS ÖеĺËÐÄÒýÇæ£¬NodeJSµÄϵͳ¼Ü¹¹´óÖÂÈçÏ£º

Óëä¯ÀÀÆ÷Ïà¶ÔÓ¦£¬Node ÖеÄÈ«¾Ö±äÁ¿¿ÉÒÔͨ¹ý Object.keys(global); »ñµÃ£¬ ¿´Ò»¿´NodeJSÖÐµÄ ¡°hello world¡± ³ÌÐò£º

var http = require('http');
http.createServer(function (req,res){
res.writeHead(200,{'Content-type':'text/plain'});
res.end('Hello Node.js \n');
}).listen(1234,"127.0.0.1");
console.log('Server running on http://127.0.0.1:1234/');

¼¸ÐдúÂë¾ÍʵÏÖÒ»¸ö¼òµ¥web server£¬ ʹPythoner ÃÇÁªÏëµ½ÁË Tornado£¬ ËüÃǶ¼×ßÔÚµ¥Ïß³ÌÒì²½IOµÄ·ÉÏ¡£

NodeJS ÌṩÁ˶Ôhttps µÄÖ§³Ö£¬¿ÉÒÔͨ¹ýopenssl Éú³ÉÖ¤ÊéµÄ·½Ê½´óÖÂÊÇ£º

openssl req -new -x509 -keyout key.pen -out cert.perm

ʹÓÃÖ¤ÊéµÄʾÀýÈçÏ£º

var fs =require(¡®fs¡¯);
var options = {
key: fs.readFileSync(¡®key.perm¡¯);
cert:fs.readFileSync(¡®cert.perm¡¯);
}

NodeJSÖ§³Ösocket ºÍÎļþ´¦Àí£¬ÅäºÏϵͳÀ©Õ¹¿ÉÒÔʹÓø÷ÖÖÄ£°æÓïÑÔ¡£»ùÓÚNodeJSµÄʵ¼ÊÔÚÒµ½ç·Ç³£¹ã·º£¬±ÈÈçÃæÏòwebsocketµÄIMϵͳ£¬¸÷ÖÖwebÓ¦ÓÃÍøÕ¾µÈµÈ¡£

¼øÓÚ΢·þÎñ¼Ü¹¹µÄÐËÆð£¬Ò²µ®ÉúÁË»ùÓÚNodeµÄ΢·þÎñ¼Ü¹¹¡ª¡ªSeneca£¬ËüʹÓÃÍ걸µÄģʽƥÅä½Ó¿ÚÀ´Á¬½Ó¸÷¸ö·þÎñ£¬´Ó´úÂëÖн«Êý¾Ý´«Êä³éÏó³öÀ´£¬Ê¹±àд¾ßÓиßÀ©Õ¹ÐÔµÄÈí¼þ±äµÃÏ൱ÈÝÒס£Seneca ûÓÐʹÓÃÒÀÀµ×¢È룬µ«ÊÇÔÚ´¦Àí¿ØÖÆ·´×ªÉÏÏ൱Áé»î£¬Ã»Óйؼü×ÖºÍÇ¿ÖÆµÄ×ֶΣ¬Ö»ÐèÒ»×é¼üÖµ¶Ô£¬ÓÃÓÚģʽƥÅäµÄÒýÇæÖС£¾ßÌå²Î¿¼ÊµÏÖ£¬¿ÉÒԲο¼¡¶Node.js ΢·þÎñ¡·Ò»Êé¡£

»ùÓÚJavaScriptµÄȫջ

Èç¹ûÔÚÕû¸öÓ¦ÓÃϵͳÖÐÖ÷ҪʹÓÃJavaScript±à³ÌÓïÑÔ×÷Ϊ¼¼ÊõÕ»£¬ÄÇôҲ¿ÉÒÔ³ÉΪ»ùÓÚJavaScript µÄȫջ£¬¹ØÓÚȫջµÄÂÛÊö¿ÉÒԲμӡ¶È«Õ»µÄ¼¼ÊõÕ»ÉèÏë¡·ºÍ¡¶ÔÙ̸< ȫջ¼Ü¹¹Ê¦>¡·Á½ÆªÎÄ×Ö¡£ÀýÈçMEAN¼Ü¹¹£¬¼´MongoDB + Express + Angular + Node£¬MEAN ¼¼ÊõÕ»´ú±í×ÅÒ»ÖÖÍêÈ«ÏÖ´úµÄ Web ¿ª·¢·½·¨£ºÒ»ÖÖÓïÑÔÔËÐÐÔÚÓ¦ÓóÌÐòµÄËùÓвã´ÎÉÏ£¬´Ó¿Í»§¶Ëµ½·þÎñÆ÷£¬ÔÙµ½³Ö¾Ã²ã¡£½èÖúJavaScriptµÄ²âÊÔ¿ò¼Ü£¬±ÈÈçMochaJS¡¢JasmineJS ºÍ KarmaJS£¬¿ÉÒÔΪ×Ô¼ºµÄ MEAN Ó¦ÓóÌÐò±àдÉîÈë¶øÓÖÈ«ÃæµÄ²âÊÔÌ×¼þ£¬¾Ý˵MEANÓÐÈ¡´úLAMP£¯LNMPµÄµÄÇ÷ÊÆ£¬µ«»¹Ðè±£³Ö½÷É÷¡£

ÒýÇæµÄ²îÒì

ÕýÏñJava ÄÇÑù£¬¾¡¹ÜÓÖ×ÅÐéÄâ»ú¹æ·¶£¬µ«¸÷¸öJVMµÄʵÏÖ»¹ÊÇÓÐ×ÅЩÐíµÄ²»Í¬£¬JavaScript Ò²ÊÇÈç´Ë¡£JavaScript¸÷ÒýÇæÖÐͬÑù´æÔÚ×ÅÉÙÁ¿µÄÏÞÖÆ£¬ÀýÈ磺

×Ö·û´®³£Á¿ÖÐÔÊÐíµÄ×î´ó×Ö·ûÊý

×÷Ϊ²ÎÊý´«µÝµ½º¯ÊýÖеÄÊý¾Ý´óС£¨Õ»´óС£©

º¯ÊýÉùÃ÷ÖеIJÎÊý¸öÊý

º¯Êýµ÷ÓÃÁ´µÄ×î´ó³¤¶È

ÒÔ×èÈû·½Ê½ÔÚä¯ÀÀÆ÷ÖÐÔËÐеÄ×î´óʱ¼ä

±äÁ¿ÃûµÄ×î´ó³¤¶È

¾¡¹ÜÈç´Ë£¬JavaScript ÔÚä¯ÀÀÆ÷ÖеıíÏÖ»¹ÊÇ»ù±¾ÉÏ¿ÉÐŵġ£

´ÓÈí¼þµ½Ó²¼þ

ʵ¼ÊÉÏ£¬JavaScriptÒѾ­Ç¶Èëµ½ÁË´Ó»úÆ÷È˵½¸÷ÖÖ¼ÒµçµÈ¸÷ÖÖ¸÷ÑùµÄÉ豸ÖС£ÕâÀïÂ¡ÖØÍÆ¼öÎҷdz£¾´ÅåµÄºÃÓÑ¡ª¡ªÖܰ®ÃñÀÏʦ£¬ËûÔÚRuff£¨Äϳ±ÐÅÏ¢¿Æ¼¼£©×öµÄÊÂÇé¾ÍÊÇJavaScript ÔÚÎïÁªÍøÉϵĽøÒ»²½Ó¦Óá£

Ruff ÊÇÒ»¸ö¿ÉÒÔÈÿª·¢ÕßʵÏÖÃô½Ý¿ª·¢ÖÇÄÜÓ²¼þµÄϵͳƽ̨¡£Ëü°üº¬ÁËRuff SDK¡¢Ruff OS£¬Rap RegistryµÈ¡£´Ó¼¼ÊõÉϽ²£¬Ruff ÊÇÒ»¸ö JavaScript ÔËÐÐʱ£¬×¨ÎªÓ²¼þ¿ª·¢¶øÉè¼Æ¡£Ruff ¶ÔÓ²¼þ½øÐÐÁ˳éÏó£¬Ê¹ÓÃÁË»ùÓÚʼþÇý¶¯¡¢Òì²½ I/O µÄÄ£ÐÍ£¬Ê¹Ó²¼þ¿ª·¢±äµÃÇáÁ¿¶øÇÒ¸ßЧ¡£Ó²¼þ³éÏó²ã£¬Ê¹µÃ²Ù×÷Ó²¼þÓÌÈçÆÕͨ³ÌÐò¿â£¬½µµÍÁËÓ²¼þÁìÓò½øÈëÃż÷¡£

Ruff Ϊ¿ª·¢ÕßÌṩÁËÍêÉÆµÄ¿ª·¢·þÎñ¡£´ÓÏîÄ¿Éú²ú¡¢Èí¼þ°ü¹ÜÀí¡¢Ó¦ÓùÜÀí¡¢ÍâÉè¹ÜÀíµ½¹Ì¼þ¹ÜÀíµÈһϵÁÐÏÖ´úÈí¼þ¿ª·¢·½Ê½£¬PC ¶ËÍê³É¿ª·¢£¬ÎÞÐèÉÕ°å×Ó£¬ÌáÉý¿ª·¢ÕߵĿª·¢Ð§ÂÊ¡£Ruff »¹ÌṩÁËÍêÉÆµÄ²âÊÔ¿ò¼Ü£¬Ö§³Ö assert¡¢test¡¢mock µÈÄ£¿é£¬ÔÚ¿ª·¢»úÉϲâÊÔÂß¼­£¬Ó²¼þ²âÊÔÒ²ÄÜ TDD¡£

¹ÙÍø£¨ruff.io) Éϸø³öµÄʾÀýÈçÏ£º

$.ready(function() {
$('#led-0').turnOn();
});

´ò¿ªµç·°åÉϵÄÒ»¸öLED µÆ£¬¾ÍÊÇÈç´ËµÄ¼òµ¥¡£Ä¿Ç°£¬Ò»¸ö Ruff Ó²¼þͬʱֻÄÜÔËÐÐÒ»¿î Ruff Ó¦Óã¬Ëü½«ÓµÓÐ×Ô¼º¶ÀÁ¢µÄ½ø³Ì£¬×Å¿ÉÄÜÒ²Êܵ½JavaScript×ÔÉíµÄÏÞÖÆ°É¡£

¹Ø×¢ÐÔÄÜ

ÐÔÄÜÊÇȫջ¹Ø×¢µÄÒ»¸öÖØÒªÎ¬¶È£¬ÄǾ䡰¹ýÔçÓÅ»¯ÊÇÍò¶ñÖ®Ô´¡±Êµ¼ÊÉÏÊÇÎÒÃǶԸߵÂÄÉÏÈÉúµÄ¶ÏÕÂÈ¡Ò壬ԭÎÄÊÇÕâÑùµÄ£º

ÎÒÃÇÓ¦¸ÃÔÚÀýÈç97%µÄʱ¼äÀÍüµôС´¦µÄЧÂÊ£»

¹ýÔçÓÅ»¯ÊÇÍò¶ñÖ®Ô´¡£

µ«ÎÒÃDz»Ó¦¸Ã´í¹ý¹Ø¼üµÄ3%ÖеĻú»á¡£

ʵ¼ÊÉÏÊǷǹؼü·¾¶ÉϵÄÓÅ»¯ÊÇÍò¶ñÖ®Ô´£¬ÎÊÌâÔÚÓÚÈçºÎÈ·¶¨ÎÒÃǵĴúÂëÊÇ·ñÔڹؼü·¾¶ÉÏ¡£²»ÂÛ½ÚÊ¡µÄʱ¼ä¶àôÉÙ£¬»¨·ÑÔڹؼü·¾¶ÉϵÄÐÔÄÜÓÅ»¯¶¼ÊÇÖµµÃµÄ¡£

¶ÔÓÚÐÔÄÜÓÅ»¯¹¤¾ß£¬ÓÃÓÚJavaScriptÔ´´úÂëѹËõÓÐ google Closure complier£¬ packer £¬YUI compresso r£¬JSminµÈ¡£Ò³ÃæµÄÐÔÄÜÓÅ»¯¹¤¾ßÓÐYSlow ºÍPage SpeedµÈ¡£Êµ¼ÊÉÏ£¬ÈκÎÓÐÒâÒåÇÒ¿É¿¿µÄÐÔÄܲâÊÔ¶¼ÊÇ»ùÓÚͳ¼ÆÑ§ÉϵĺÏÀíʵ¼ù¡£ ¾ÍJavaScript ´úÂë±¾ÉíµÄÐÔÄܶøÑÔ£¬benchmarkjs ÊÇÒ»¸öºÜºÃµÄ¹¤¾ß£¬¶øjsperf.com ÌṩÁ˶ÔJavaScript Ö´Ðл·¾³µÄÐÔÄܲâÊÔ¡£

×ÜÖ®£¬JavaScript ÊÇÒ»¸ö¾ßÓÐÇ¿´óÉúÃüÁ¦µÄÓïÑÔ£¬Ç°¶Ë¿ò¼Ü¸üÊÇÈÕÐÂÔÂÒ죬´ÓAngular£¬Vue£¬µ½React£¬ ÄËÖÁReact Native£¬¸øÈËÒÔÄ¿²»Ï¾½ÓµÄ¸Ð¾õ£¬µ«ÊÇ£¬ÀÏÂëÅ©¾õµÃ»ù´¡ÈÏʶ»¹ÊǷdz£±ØÒªµÄ£¬ÎðÔÚ¸¡É³Öþ¸ßËþ¡£

   
3145 ´Îä¯ÀÀ       27
Ïà¹ØÎÄÕÂ

Éî¶È½âÎö£ºÇåÀíÀôúÂë
ÈçºÎ±àд³öÓµ±§±ä»¯µÄ´úÂë
ÖØ¹¹-ʹ´úÂë¸ü¼ò½àÓÅÃÀ
ÍŶÓÏîÄ¿¿ª·¢"±àÂë¹æ·¶"ϵÁÐÎÄÕÂ
Ïà¹ØÎĵµ

ÖØ¹¹-¸ÄÉÆ¼ÈÓдúÂëµÄÉè¼Æ
Èí¼þÖØ¹¹v2
´úÂëÕû½àÖ®µÀ
¸ßÖÊÁ¿±à³Ì¹æ·¶
Ïà¹Ø¿Î³Ì

»ùÓÚHTML5¿Í»§¶Ë¡¢Web¶ËµÄÓ¦Óÿª·¢
HTML 5+CSS ¿ª·¢
ǶÈëʽC¸ßÖÊÁ¿±à³Ì
C++¸ß¼¶±à³Ì