JS¼¼Êõ

Êý¾Ý·ÃÎÊÖ®¸Ä±ä×÷ÓÃÓòÁ´

×ÖºÅ+ ×÷Õߣº À´Ô´£º 2014-11-16 22:20 ÎÒÒªÆÀÂÛ( )

Êý¾Ý·ÃÎÊÖ®¸Ä±ä×÷ÓÃÓòÁ´

      Ò»°ãÀ´Ëµ£¬Ò»¸öÔËÐÐÆÚÉÏÏÂÎĵÄ×÷ÓÃÓòÁ´²»»á±»¸Ä±ä¡£µ«ÊÇ£¬ÓÐÁ½ÖÖ±í´ïʽ¿ÉÒÔÔÚÔËÐÐʱÁÙʱ¸Ä±äÔËÐÐÆÚÉÏÏÂÎÄ×÷ÓÃÓòÁ´¡£µÚÒ»¸öÊÇwith ±í´ïʽ¡£with ±í´ïʽΪËùÓжÔÏóÊôÐÔ´´½¨Ò»¸öĬÈϲÙ×÷±äÁ¿¡£ÔÚÆäËûÓïÑÔÖУ¬ÀàËÆµÄ¹¦ÄÜͨ³£ÓÃÀ´±ÜÃâÊéÐ´Ò»Ð©ÖØ¸´µÄ´úÂë¡£initUI()º¯Êý¿ÉÒÔÖØÐ´³ÉÈçÏÂÑùʽ£º
      function initUI(){
            with (document){ //avoid!
                  var bd = body,
                  links = getElementsByTagName_r("a"),
                  i = 0,
                  len = links.length;
                  while(i < len){
                        update(links[i++]);
                  }

            getElementById("go-btn").onclick = function(){
                  start();
            };
            bd.className = "active";
            }
      }
      ´ËÖØÐ´µÄinitUI()°æ±¾Ê¹ÓÃÁËÒ»¸öwith ±í´ïʽ£¬±ÜÃâ¶à´ÎÊéд“document”¡£Õâ¿´ÆðÀ´Ëƺõ¸üÓÐЧÂÊ£¬¶øÊµ¼ÊÉÏÈ´²úÉúÁËÒ»¸öÐÔÄÜÎÊÌâ¡£µ±´úÂëÁ÷Ö´Ðе½Ò»¸öwith ±í´ïʽʱ£¬ÔËÐÐÆÚÉÏÏÂÎĵÄ×÷ÓÃÓòÁ´±»ÁÙʱ¸Ä±äÁË¡£Ò»¸öеĿɱä¶ÔÏ󽫱»´´½¨£¬Ëü°üº¬Ö¸¶¨¶ÔÏóµÄËùÓÐÊôÐÔ¡£´Ë¶ÔÏó±»²åÈëµ½×÷ÓÃÓòÁ´µÄǰ¶Ë£¬Òâζ×ÅÏÖÔÚº¯ÊýµÄËùÓоֲ¿±äÁ¿¶¼±»ÍÆÈëµÚ¶þ¸ö×÷ÓÃÓòÁ´¶ÔÏóÖУ¬ËùÒÔ·ÃÎÊ´ú¼Û¸ü¸ßÁË¡£
      ͨ¹ý½«document ¶ÔÏ󴫵ݸøwith ±í´ïʽ£¬Ò»¸öеĿɱä¶ÔÏóÈÝÄÉÁËdocument ¶ÔÏóµÄËùÓÐÊôÐÔ£¬±»²åÈëµ½×÷ÓÃÓòÁ´µÄǰ¶Ë¡£ÕâʹµÃ·ÃÎÊdocument µÄÊôÐԷdz£¿ì£¬µ«ÊÇ·ÃÎʾֲ¿±äÁ¿µÄËÙ¶ÈÈ´±äÂýÁË£¬ÀýÈçbd ±äÁ¿¡£ÕýÒòΪÕâ¸öÔ­Òò£¬×îºÃ²»ÒªÊ¹ÓÃwith ±í´ïʽ¡£ÕýÈçÇ°ÃæÌáµ½µÄ£¬Ö»Òª¼òµ¥µØ½«document ´æ´¢ÔÚÒ»¸ö¾Ö²¿±äÁ¿ÖУ¬¾Í¿ÉÒÔ»ñµÃÐÔÄÜÉϵÄÌáÉý¡£
      ÔÚJavaScript Öв»Ö»ÊÇwith ±í´ïʽÈËΪµØ¸Ä±äÔËÐÐÆÚÉÏÏÂÎĵÄ×÷ÓÃÓòÁ´£¬try-catch ±í´ïʽµÄcatch ×Ó¾ä¾ßÓÐÏàͬЧ¹û¡£µ±try ¿é·¢Éú´íÎóʱ£¬³ÌÐòÁ÷³Ì×Ô¶¯×ªÈëcatch ¿é£¬²¢½«Òì³£¶ÔÏóÍÆÈë×÷ÓÃÓòÁ´Ç°¶ËµÄÒ»¸ö¿É±ä¶ÔÏóÖС£ÔÚcatch ¿éÖУ¬º¯ÊýµÄËùÓоֲ¿±äÁ¿ÏÖÔÚ±»·ÅÔÚµÚ¶þ¸ö×÷ÓÃÓòÁ´¶ÔÏóÖС£ÀýÈ磺
      try {
            methodThatMightCauseAnError();
      } catch (ex){
            alert(ex.message); //scope chain is augmented here
      }
      Çë×¢Ò⣬ֻҪcatch ×Ó¾äÖ´ÐÐÍê±Ï£¬×÷ÓÃÓòÁ´¾Í»á·µ»Øµ½Ô­À´µÄ״̬¡£Èç¹ûʹÓõõ±£¬try-catch ±í´ïʽÊǷdz£ÓÐÓõÄÓï¾ä£¬ËùÒÔ²»½¨ÒéÍêÈ«±ÜÃâ¡£Èç¹ûÄã¼Æ»®Ê¹ÓÃÒ»¸ötry-catchÓï¾ä£¬ÇëÈ·±£ÄãÁ˽â¿ÉÄÜ·¢ÉúµÄ´íÎó¡£Ò»¸ötry-catch Óï¾ä²»Ó¦¸Ã×÷ΪJavaScript ´íÎóµÄ½â¾ö°ì·¨¡£Èç¹ûÄãÖªµÀÒ»¸ö´íÎó»á¾­³£·¢Éú£¬ÄÇ˵Ã÷Ó¦µ±ÐÞÕý´úÂë±¾ÉíµÄÎÊÌâ¡£Äã¿ÉÒÔͨ¹ý¾«Ëõ´úÂëµÄ°ì·¨×îС»¯catch ×Ó¾ä¶ÔÐÔÄܵÄÓ°Ïì¡£Ò»¸öºÜºÃµÄģʽÊǽ«´íÎ󽻸øÒ»¸öרÓú¯ÊýÀ´´¦Àí¡£Àý×ÓÈçÏ£º
      try {
            methodThatMightCauseAnError();
      } catch (ex){
            handleError(ex); //delegate to handler method
      }
      handleError()º¯ÊýÊÇcatch ×Ó¾äÖÐÔËÐеÄΨһ´úÂë¡£´Ëº¯ÊýÒÔÊʵ±·½·¨×ÔÓɵش¦Àí´íÎ󣬲¢½ÓÊÕÓÉ´íÎó²úÉúµÄÒì³£¶ÔÏó¡£ÓÉÓÚÖ»ÓÐÒ»ÌõÓï¾ä£¬Ã»Óоֲ¿±äÁ¿·ÃÎÊ£¬×÷ÓÃÓòÁ´ÁÙʱ¸Ä±ä¾Í²»»áÓ°Ïì´úÂëµÄÐÔÄÜ¡£Dynamic Scopes ¶¯Ì¬×÷ÓÃÓòÎÞÂÛÊÇwith ±í´ïʽ»¹ÊÇtry-catch ±í´ïʽµÄcatch ×Ӿ䣬ÒÔ¼°°üº¬()µÄº¯Êý£¬¶¼±»ÈÏΪÊǶ¯Ì¬×÷ÓÃÓò¡£Ò»¸ö¶¯Ì¬×÷ÓÃÓòÖ»Òò´úÂëÔËÐжø´æÔÚ£¬Òò´ËÎÞ·¨Í¨¹ý¾²Ì¬·ÖÎö£¨²ì¿´´úÂë½á¹¹£©À´È·¶¨£¨ÊÇ·ñ´æÔÚ¶¯Ì¬×÷ÓÃÓò£©¡£ÀýÈ磺
      function execute(code) {
            (code);
            function subroutine(){
                  return window;
            }
            var w = subroutine();
            //what value is w?
      };
      execute()º¯Êý¿´ÉÏÈ¥ÏñÒ»¸ö¶¯Ì¬×÷ÓÃÓò£¬ÒòΪËüʹÓÃÁË()¡£w ±äÁ¿µÄÖµÓëcode Óйء£´ó¶àÊýÇé¿öÏ£¬w½«µÈ¼ÛÓÚÈ«¾ÖµÄwindow ¶ÔÏ󣬵«ÊÇÇ뿼ÂÇÈçÏÂÇé¿ö£ºexecute("var window = {};")ÕâÖÖÇé¿öÏ£¬()ÔÚexecute()º¯ÊýÖд´½¨ÁËÒ»¸ö¾Ö²¿window ±äÁ¿¡£ËùÒÔw ½«µÈ¼ÛÓÚÕâ¸ö¾Ö²¿window ±äÁ¿¶ø²»ÊÇÈ«¾ÖµÄÄǸö¡£ËùÒÔ˵£¬²»ÔËÐÐÕâ¶Î´úÂëÊÇûÓа취Á˽â¾ßÌåÇé¿öµÄ£¬±êʶ·ûwindow µÄÈ·Çк¬Òå²»ÄÜÔ¤ÏÈÈ·¶¨¡£
      ÓÅ»¯µÄJavaScript ÒýÇæ£¬ÀýÈçSafari µÄNitro ÒýÇæ£¬Æóͼͨ¹ý·ÖÎö´úÂëÀ´È·¶¨ÄÄЩ±äÁ¿Ó¦¸ÃÔÚÈÎÒâʱ¿Ì±»·ÃÎÊ£¬À´¼Ó¿ì±êʶ·ûʶ±ð¹ý³Ì¡£ÕâЩÒýÇæÆóͼ±Ü¿ª´«Í³×÷ÓÃÓòÁ´²éÕÒ£¬È¡´úÒÔ±êʶ·ûË÷ÒýµÄ·½Ê½½øÐпìËÙ²éÕÒ¡£µ±Éæ¼°Ò»¸ö¶¯Ì¬×÷ÓÃÓòºó£¬´ËÓÅ»¯·½·¨¾Í²»Æð×÷ÓÃÁË¡£ÒýÇæÐèÒªÇлØÂýËٵĻùÓÚ¹þÏ£±íµÄ±êʶ·ûʶ±ð·½·¨£¬¸üÏñ´«Í³µÄ×÷ÓÃÓòÁ´ËÑË÷¡£ÕýÒòΪÕâ¸öÔ­Òò£¬Ö»ÔÚ¾ø¶Ô±ØÒªÊ±²ÅÍÆ¼öʹÓö¯Ì¬×÷ÓÃÓò¡£

¡¡

1.±¾Õ¾×ñÑ­ÐÐÒµ¹æ·¶£¬ÈκÎ×ªÔØµÄ¸å¼þ¶¼»áÃ÷È·±ê×¢×÷ÕߺÍÀ´Ô´£»2.±¾Õ¾µÄÔ­´´ÎÄÕ£¬Çë×ªÔØÊ±Îñ±Ø×¢Ã÷ÎÄÕÂ×÷ÕߺÍÀ´Ô´£¬²»×ðÖØÔ­´´µÄÐÐΪÎÒÃǽ«×·¾¿ÔðÈΣ»3.×÷ÕßͶ¸å¿ÉÄܻᾭÎÒÃDZ༭Ð޸Ļò²¹³ä¡£

Ïà¹ØÎÄÕÂ
  • WEBǰ¶Ë½Ì³Ì-JavaScriptÀïµÄÀàºÍ¼Ì³Ð

    WEBǰ¶Ë½Ì³Ì-JavaScriptÀïµÄÀàºÍ¼Ì³Ð

    2016-01-21 15:28

  • ¸ßÐÔÄܶ¯»­¡°box-shadow¡±ÊôÐÔ - FedFun - ²©¿ÍƵµÀ - CSDN.NET FedFun °®Ç°¶Ë£¬ÀÖ·Ö

    ¸ßÐÔÄܶ¯»­¡°box-shadow¡±ÊôÐÔ - FedFun - ²©¿ÍƵµÀ - CSDN.NET FedF

    2015-12-14 16:15

  • JS¿ª·¢Õßµ÷²é - FedFun - ²©¿ÍƵµÀ - CSDN.NET FedFun °®Ç°¶Ë£¬ÀÖ·ÖÏí£¬Ç°¶Ë³ÕÍõº£ÇìµÄ²©¿Í£¡

    JS¿ª·¢Õßµ÷²é - FedFun - ²©¿ÍƵµÀ - CSDN.NET FedFun °®Ç°¶Ë£¬ÀÖ·Ö

    2015-12-13 11:08

  • JqueryϱàдÁ÷ÐеÄǰ¶ËµÄÓ¦ÓÃÔ´Âë_Javascript½Ì³Ì

    JqueryϱàдÁ÷ÐеÄǰ¶ËµÄÓ¦ÓÃÔ´Âë_Javascript½Ì³Ì

    2015-10-01 09:24

ÍøÓѵãÆÀ
Ö