B2BÍøÂçÈí¼þ

 ÕÒ»ØÃÜÂë
 Á¢¼´×¢²á ÉóºËÍøÕ¾ºÅ:QQ:896757558
ËÑË÷
²é¿´: 4|»Ø¸´: 0
´òÓ¡ ÉÏÒ»Ö÷Ìâ ÏÂÒ»Ö÷Ìâ

°²×¿½Å±¾Ê¾ÀýPOSTºÍGET±äÁ¿·½·¨µÄʵ¼ÊÓ¦ÓÃ

[¸´ÖÆÁ´½Ó]

1087

Ö÷Ìâ

1092

Ìû×Ó

7625

»ý·Ö

abc

Rank: 9Rank: 9Rank: 9

»ý·Ö
7625
Ìø×ªµ½Ö¸¶¨Â¥²ã
Â¥Ö÷
°²×¿½Å±¾Ê¾ÀýPOSTºÍGET±äÁ¿·½·¨µÄʵ¼ÊÓ¦Óà °²×¿½Å±¾Ê¾ÀýPOSTºÍGET±äÁ¿·½·¨µÄʵ¼ÊÓ¦Óà B2BÍøÂçÈí¼þ


°²×¿½Å±¾Ê¾ÀýPOSTºÍGET±äÁ¿·½·¨µÄʵ¼ÊÓ¦Óà B2BÍøÂçÈí¼þ

  1. /**
  2. * Ö÷½Å±¾.js - ¿¨ÃܹÜÀíϵͳÍêÕûʾÀý
  3. * »ùÓÚ°²×¿POST ºÍ GET ·½·¨µÄʵ¼ÊÓ¦ÓÃ
  4. * ÊÊÓñ¾Îĵµ ES5 ϵͳ°²×¿ JavaScript ÒýÇæ Rhino
  5. */

  6. // =============================================================================
  7. // 0. ÈÕ־ǎÓÅäÖ㨽« printl ÖØ¶¨Ïòµ½ console.log£©
  8. // =============================================================================

  9. // Ç¿ÖÆ½« printl ÖØ¶¨Ïòµ½ console.log£¬ÒÔ±ã LogBridge Äܲ¶»ñÈÕÖ¾
  10. var originalPrintl = (typeof printl !== 'undefined') ? printl : null;
  11. printl = function(message) {
  12.     // ͬʱÊä³öµ½ console.log£¨»á±» LogBridge ²¶»ñµ½ H5£©
  13.     if (typeof console !== 'undefined' && typeof console.log === 'function') {
  14.         console.log(message);
  15.     }
  16.     // Èç¹ûÔ­À´ÓÐ printl£¬Ò²µ÷ÓÃËü£¨±£Áôԭʼ¹¦ÄÜ£©
  17.     if (originalPrintl) {
  18.         originalPrintl(message);
  19.     }
  20. };

  21. // =============================================================================
  22. // 1. ÅäÖó£Á¿
  23. // =============================================================================

  24. var API_BASE_URL = "http://api.autoapp.net.cn:1089";
  25. var APK_ORDER_URL = "http://api.autoapp.net.cn:1088";
  26. var ADMIN_USERNAME = "mm258";      // ²âÊÔÕ˺Å
  27. var ADMIN_PASSWORD = "fhdg148q";   // ²âÊÔÃÜÂë

  28. // =============================================================================
  29. // 2. »ñÈ¡ Token
  30. // =============================================================================

  31. /**
  32. * »ñÈ¡¹ÜÀí token
  33. * API: http://api.autoapp.net.cn:1089/token?username=ak123&password=123456&validateCode=1&rememberMe=false
  34. * @returns {String|null} ·µ»Ø token »ò null
  35. */
  36. function getToken() {
  37.     try {
  38.         var http = new okHttp();
  39.         
  40.         // ÉèÖÃÇëÇóÍ·
  41.         http.setHeader("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36");
  42.         http.setHeader("Content-Type", "application/x-www-form-urlencoded");
  43.         
  44.         // ¹¹½¨ÇëÇó URL
  45.         var url = API_BASE_URL + "/token?username=" + ADMIN_USERNAME +
  46.                   "&password=" + ADMIN_PASSWORD +
  47.                   "&validateCode=1&rememberMe=false";
  48.         
  49.         printl("ÕýÔÚ»ñÈ¡ token...");
  50.         printl("ÇëÇó URL: " + url);
  51.         var response = http.get(url);
  52.         printl("»ñÈ¡ token ÏìÓ¦£º" + response);
  53.         
  54.         // ½âÎö JSON ÏìÓ¦
  55.         var jsonObj = JSON.parse(response);
  56.         
  57.         if (jsonObj.code === 0) {
  58.             var token = jsonObj.msg;  // msg ×ֶξÍÊÇ token
  59.             printl("✓ Token »ñÈ¡³É¹¦£º" + token);
  60.             return token;
  61.         } else {
  62.             printl("✗ Token »ñȡʧ°Ü£¬´íÎóÂ룺" + jsonObj.code);
  63.             return null;
  64.         }
  65.     } catch (e) {
  66.         printl("✗ »ñÈ¡ Token ʱ·¢ÉúÒì³££º" + e);
  67.         return null;
  68.     }
  69. }

  70. // =============================================================================
  71. // 3. »»»ú½Ó¿Ú
  72. // =============================================================================

  73. /**
  74. * »»»ú¼¤»î
  75. * API: http://api.autoapp.net.cn:1088/apkOrder/exitActivateNew?CardCode=¿¨ÃÜ&imei=»úÆ÷Âë
  76. * @param {String} cardCode ¿¨ÃÜ
  77. * @param {String} imei É豸 IMEI£¨Í¨¹ý device.getIMEI() »ñÈ¡£©
  78. * @returns {Boolean} ÊÇ·ñ³É¹¦
  79. */
  80. function activateNewDevice(cardCode, imei) {
  81.     try {
  82.         var http = new okHttp();
  83.         
  84.         // ÉèÖÃÇëÇóÍ·
  85.         http.setHeader("User-Agent", "Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N)");
  86.         
  87.         // ¹¹½¨»»»ú½Ó¿Ú URL£¨×¢Ò⣺²ÎÊýÃûÊÇ CardCode£¬´óдC£©
  88.         var url = APK_ORDER_URL + "/apkOrder/exitActivateNew?CardCode=" + cardCode + "&imei=" + imei;
  89.         
  90.         printl("=== »»»ú¼¤»î ===");
  91.         printl("¿¨ÃÜ£º" + cardCode);
  92.         printl("IMEI: " + imei);
  93.         printl("ÇëÇó URL: " + url);
  94.         
  95.         var response = http.get(url);
  96.         printl("»»»úÏìÓ¦£º" + response);
  97.         
  98.         // ¸ù¾Ýʵ¼ÊÏìÓ¦ÅжÏÊÇ·ñ³É¹¦
  99.         if (response && response.indexOf("success") !== -1) {
  100.             printl("✓ »»»ú¼¤»î³É¹¦");
  101.             return true;
  102.         } else {
  103.             printl("✗ »»»ú¼¤»îʧ°Ü");
  104.             return false;
  105.         }
  106.     } catch (e) {
  107.         printl("✗ »»»ú¼¤»îÒì³££º" + e);
  108.         return false;
  109.     }
  110. }

  111. // =============================================================================
  112. // 4. ·¢¿¨½Ó¿Ú
  113. // =============================================================================

  114. /**
  115. * Ìí¼Óп¨ÃÜ
  116. * API: http://api.autoapp.net.cn:1089/system/activatecardv2/addCard?token=xxx&card=t23432&cardType=day&devices=1&remarks=
  117. * @param {String} token ¹ÜÀí token£¨Í¨¹ý getToken() »ñÈ¡£©
  118. * @param {String} card ¿¨ÃÜ£¨±ØÐë´óÓÚ5룬¿ªÍ·±ØÐë×Öĸ£©
  119. * @param {String} cardType ¿¨ÀàÐÍ£¨dayÌ쿨/monthÔ¿¨/quarter¼¾¿¨/halfYear°ëÄ꿨/yearÄ꿨£©
  120. * @param {Number} devices É豸ÊýÁ¿
  121. * @param {String} remarks ±¸×¢ÐÅÏ¢
  122. * @returns {Boolean} ÊÇ·ñ³É¹¦
  123. */
  124. function addCard(token, card, cardType, devices, remarks) {
  125.     try {
  126.         var http = new okHttp();
  127.         
  128.         // ÉèÖÃÇëÇóÍ·
  129.         http.setHeader("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64)");
  130.         http.setHeader("Content-Type", "application/json");
  131.         
  132.         // ¹¹½¨ URL
  133.         var url = API_BASE_URL + "/system/activatecardv2/addCard?token=" + token +
  134.                   "&card=" + card +
  135.                   "&cardType=" + cardType +
  136.                   "&devices=" + devices +
  137.                   "&remarks=" + remarks;
  138.         
  139.         printl("=== Ìí¼Ó¿¨ÃÜ ===");
  140.         printl("¿¨ÃÜ£º" + card);
  141.         printl("ÀàÐÍ£º" + cardType);
  142.         printl("É豸Êý£º" + devices);
  143.         printl("±¸×¢£º" + remarks);
  144.         
  145.         var response = http.get(url);
  146.         printl("·¢¿¨ÏìÓ¦£º" + response);
  147.         
  148.         // ³¢ÊÔ½âÎö JSON ÏìÓ¦
  149.         try {
  150.             var jsonObj = JSON.parse(response);
  151.             if (jsonObj.code === 0 || jsonObj.success === true) {
  152.                 printl("✓ ¿¨ÃÜÌí¼Ó³É¹¦");
  153.                 return true;
  154.             } else {
  155.                 printl("✗ ¿¨ÃÜÌí¼Óʧ°Ü");
  156.                 return false;
  157.             }
  158.         } catch (e) {
  159.             // Èç¹û²»ÊÇ JSON£¬¼ì²éÏìÓ¦Îı¾
  160.             if (response && response.indexOf("success") !== -1) {
  161.                 printl("✓ ¿¨ÃÜÌí¼Ó³É¹¦");
  162.                 return true;
  163.             } else {
  164.                 printl("✗ ¿¨ÃÜÌí¼Óʧ°Ü");
  165.                 return false;
  166.             }
  167.         }
  168.     } catch (e) {
  169.         printl("✗ Ìí¼Ó¿¨ÃÜÒì³££º" + e);
  170.         return false;
  171.     }
  172. }

  173. // =============================================================================
  174. // 5. Ðø·Ñ½Ó¿Ú
  175. // =============================================================================

  176. /**
  177. * Ðø·Ñ¿¨ÃÜ
  178. * API: http://api.autoapp.net.cn:1089/system/activatecardv2/editCard?token=xxx&card=t23432&cardType=day&devices=1&remarks=
  179. * @param {String} token ¹ÜÀí token£¨Í¨¹ý getToken() »ñÈ¡£©
  180. * @param {String} card ¿¨ÃÜ£¨±ØÐë´óÓÚ5룬¿ªÍ·±ØÐë×Öĸ£©
  181. * @param {String} cardType ¿¨ÀàÐÍ£¨dayÌ쿨/monthÔ¿¨/quarter¼¾¿¨/halfYear°ëÄ꿨/yearÄ꿨£©
  182. * @param {Number} devices É豸ÊýÁ¿
  183. * @param {String} remarks ±¸×¢
  184. * @returns {Boolean} ÊÇ·ñ³É¹¦
  185. */
  186. function renewCard(token, card, cardType, devices, remarks) {
  187.     try {
  188.         var http = new okHttp();
  189.         
  190.         // ÉèÖÃÇëÇóÍ·
  191.         http.setHeader("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64)");
  192.         http.setHeader("Content-Type", "application/json");
  193.         
  194.         // ¹¹½¨ URL
  195.         var url = API_BASE_URL + "/system/activatecardv2/editCard?token=" + token +
  196.                   "&card=" + card +
  197.                   "&cardType=" + cardType +
  198.                   "&devices=" + devices +
  199.                   "&remarks=" + remarks;
  200.         
  201.         printl("=== Ðø·Ñ¿¨ÃÜ ===");
  202.         printl("¿¨ÃÜ£º" + card);
  203.         printl("ÀàÐÍ£º" + cardType);
  204.         printl("É豸Êý£º" + devices);
  205.         
  206.         var response = http.get(url);
  207.         printl("Ðø·ÑÏìÓ¦£º" + response);
  208.         
  209.         // ³¢ÊÔ½âÎö JSON ÏìÓ¦
  210.         try {
  211.             var jsonObj = JSON.parse(response);
  212.             if (jsonObj.code === 0 || jsonObj.success === true) {
  213.                 printl("✓ ¿¨ÃÜÐø·Ñ³É¹¦");
  214.                 return true;
  215.             } else {
  216.                 printl("✗ ¿¨ÃÜÐø·Ñʧ°Ü");
  217.                 return false;
  218.             }
  219.         } catch (e) {
  220.             if (response && response.indexOf("success") !== -1) {
  221.                 printl("✓ ¿¨ÃÜÐø·Ñ³É¹¦");
  222.                 return true;
  223.             } else {
  224.                 printl("✗ ¿¨ÃÜÐø·Ñʧ°Ü");
  225.                 return false;
  226.             }
  227.         }
  228.     } catch (e) {
  229.         printl("✗ Ðø·Ñ¿¨ÃÜÒì³££º" + e);
  230.         return false;
  231.     }
  232. }

  233. // =============================================================================
  234. // 6. ²éѯ¿¨ÃÜÐÅÏ¢
  235. // =============================================================================

  236. /**
  237. * ²éѯ¿¨ÃÜÏêϸÐÅÏ¢
  238. * API: http://api.autoapp.net.cn:1089/system/activatecardv2/info?token=xxx&card=t23432
  239. * @param {String} token ¹ÜÀí token£¨Í¨¹ý getToken() »ñÈ¡£©
  240. * @param {String} card ¿¨ÃÜ
  241. * @returns {Object|null} ¿¨ÃÜÐÅÏ¢¶ÔÏó»ò null
  242. */
  243. function getCardInfo(token, card) {
  244.     try {
  245.         var http = new okHttp();
  246.         
  247.         // ÉèÖÃÇëÇóÍ·
  248.         http.setHeader("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64)");
  249.         
  250.         // ¹¹½¨ URL
  251.         var url = API_BASE_URL + "/system/activatecardv2/info?token=" + token + "&card=" + card;
  252.         
  253.         printl("=== ²éѯ¿¨ÃÜÐÅÏ¢ ===");
  254.         printl("¿¨ÃÜ£º" + card);
  255.         
  256.         var response = http.get(url);
  257.         printl("²éѯÏìÓ¦£º" + response);
  258.         
  259.         // ½âÎö JSON ÏìÓ¦
  260.         var jsonObj = JSON.parse(response);
  261.         
  262.         if (jsonObj.code === 0) {
  263.             printl("✓ ²éѯ³É¹¦");
  264.             printl("¿¨ÃÜÐÅÏ¢£º" + JSON.stringify(jsonObj.data));
  265.             return jsonObj.data;
  266.         } else {
  267.             printl("✗ ²éѯʧ°Ü");
  268.             return null;
  269.         }
  270.     } catch (e) {
  271.         printl("✗ ²éѯ¿¨ÃÜÐÅÏ¢Òì³££º" + e);
  272.         return null;
  273.     }
  274. }

  275. // =============================================================================
  276. // 7. ²éѯ¿¨ÃÜÉ豸Áбí
  277. // =============================================================================

  278. /**
  279. * ²éѯ¿¨Ãܰ󶨵ÄÉ豸Áбí
  280. * API: http://api.autoapp.net.cn:1089/system/activatecardv2/devices?token=xxx&card=t23432
  281. * @param {String} token ¹ÜÀí token£¨Í¨¹ý getToken() »ñÈ¡£©
  282. * @param {String} card ¿¨ÃÜ
  283. * @returns {Array|null} É豸Áбí»ò null
  284. */
  285. function getCardDevices(token, card) {
  286.     try {
  287.         var http = new okHttp();
  288.         
  289.         // ÉèÖÃÇëÇóÍ·
  290.         http.setHeader("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64)");
  291.         
  292.         // ¹¹½¨ URL
  293.         var url = API_BASE_URL + "/system/activatecardv2/devices?token=" + token + "&card=" + card;
  294.         
  295.         printl("=== ²éѯÉ豸Áбí ===");
  296.         printl("¿¨ÃÜ£º" + card);
  297.         
  298.         var response = http.get(url);
  299.         printl("É豸ÁбíÏìÓ¦£º" + response);
  300.         
  301.         // ½âÎö JSON ÏìÓ¦
  302.         var jsonObj = JSON.parse(response);
  303.         
  304.         if (jsonObj.code === 0) {
  305.             printl("✓ ²éѯ³É¹¦");
  306.             var devices = jsonObj.data || jsonObj.list || [];
  307.             printl("É豸ÊýÁ¿£º" + devices.length);
  308.             
  309.             // ±éÀúÏÔʾÉ豸ÐÅÏ¢
  310.             for (var i = 0; i < devices.length; i++) {
  311.                 printl("É豸" + (i+1) + ": " + JSON.stringify(devices[i]));
  312.             }
  313.             
  314.             return devices;
  315.         } else {
  316.             printl("✗ ²éѯʧ°Ü");
  317.             return null;
  318.         }
  319.     } catch (e) {
  320.         printl("✗ ²éѯÉ豸ÁбíÒì³££º" + e);
  321.         return null;
  322.     }
  323. }

  324. // =============================================================================
  325. // 8. ×ÛºÏʾÀý - ÍêÕûÒµÎñÁ÷³Ì
  326. // =============================================================================

  327. /**
  328. * ÍêÕûÒµÎñÁ÷³ÌÑÝʾ
  329. */
  330. function mainWorkflow() {
  331.     printl("========================================");
  332.     printl("    ¿¨ÃܹÜÀíϵͳ - ÍêÕû¹¤×÷Á÷³ÌÑÝʾ");
  333.     printl("========================================");
  334.    
  335.     // ²½Öè 1: »ñÈ¡ Token
  336.     var token = getToken();
  337.     if (!token) {
  338.         printl("✗ ÎÞ·¨»ñÈ¡ token£¬Á÷³ÌÖÕÖ¹");
  339.         return;
  340.     }
  341.    
  342.     // ²½Öè 2: Ìí¼Óп¨ÃÜ
  343.     var newCard = "t2026040001";
  344.     var success = addCard(token, newCard, "month", 2, "²âÊÔ¿¨ÃÜ");
  345.     if (success) {
  346.         printl("✓ п¨ÃÜ´´½¨³É¹¦£º" + newCard);
  347.     } else {
  348.         printl("✗ п¨ÃÜ´´½¨Ê§°Ü");
  349.     }
  350.    
  351.     // ²½Öè 3: ²éѯ¿¨ÃÜÐÅÏ¢
  352.     var cardInfo = getCardInfo(token, newCard);
  353.     if (cardInfo) {
  354.         printl("✓ ¿¨ÃÜÐÅÏ¢²éѯ³É¹¦");
  355.     }
  356.    
  357.     // ²½Öè 4: ²éѯÉ豸Áбí
  358.     var devices = getCardDevices(token, newCard);
  359.     if (devices !== null) {
  360.         printl("✓ É豸Áбí²éѯ³É¹¦");
  361.     }
  362.    
  363.     // ²½Öè 5: Ðø·Ñ¿¨ÃÜ
  364.     var renewSuccess = renewCard(token, newCard, "quarter", 3, "Ðø·ÑΪ¼¾¿¨");
  365.     if (renewSuccess) {
  366.         printl("✓ ¿¨ÃÜÐø·Ñ³É¹¦");
  367.     }
  368.    
  369.     // ²½Öè 6: »»»ú¼¤»îʾÀý
  370.     var currentImei = device.getIMEI();
  371.     var testCard = "t2026040002";
  372.     var activateSuccess = activateNewDevice(testCard, currentImei);
  373.     if (activateSuccess) {
  374.         printl("✓ »»»ú¼¤»î³É¹¦");
  375.     }
  376.    
  377.     printl("========================================");
  378.     printl("    ¹¤×÷Á÷³ÌÑÝʾÍê³É");
  379.     printl("========================================");
  380. }

  381. // =============================================================================
  382. // 9. ʵÓù¤¾ßº¯Êý
  383. // =============================================================================

  384. /**
  385. * ÅúÁ¿´´½¨¿¨ÃÜ
  386. * @param {String} token ¹ÜÀí token
  387. * @param {String} prefix ¿¨ÃÜǰ׺
  388. * @param {Number} count ´´½¨ÊýÁ¿
  389. * @param {String} cardType ¿¨ÀàÐÍ
  390. * @param {Number} devices É豸Êý
  391. */
  392. function batchCreateCards(token, prefix, count, cardType, devices) {
  393.     printl("=== ÅúÁ¿´´½¨¿¨ÃÜ ===");
  394.     printl("ǰ׺£º" + prefix);
  395.     printl("ÊýÁ¿£º" + count);
  396.     printl("ÀàÐÍ£º" + cardType);
  397.    
  398.     var successCount = 0;
  399.     var failCount = 0;
  400.    
  401.     for (var i = 0; i < count; i++) {
  402.         // Éú³É¿¨ÃÜ£ºÇ°×º + ʱ¼ä´Áºó 6 λ
  403.         var timestamp = new Date().getTime().toString().substr(-6);
  404.         var cardCode = prefix + timestamp + String(i).padStart(3, '0');
  405.         
  406.         printl("ÕýÔÚ´´½¨µÚ " + (i+1) + " ¸ö¿¨ÃÜ£º" + cardCode);
  407.         
  408.         if (addCard(token, cardCode, cardType, devices, "ÅúÁ¿´´½¨")) {
  409.             successCount++;
  410.         } else {
  411.             failCount++;
  412.         }
  413.         
  414.         // ±ÜÃâÇëÇó¹ý¿ì£¬ÔÝÍ£ 100ms
  415.         sleep(100);
  416.     }
  417.    
  418.     printl("=== ÅúÁ¿´´½¨½á¹û ===");
  419.     printl("³É¹¦£º" + successCount + " ¸ö");
  420.     printl("ʧ°Ü£º" + failCount + " ¸ö");
  421. }

  422. /**
  423. * ¼ì²é¿¨ÃÜ״̬
  424. * @param {String} token ¹ÜÀí token
  425. * @param {String} card ¿¨ÃÜ
  426. * @returns {Object} ¿¨ÃÜ״̬ÐÅÏ¢
  427. */
  428. function checkCardStatus(token, card) {
  429.     var info = getCardInfo(token, card);
  430.    
  431.     if (!info) {
  432.         return {
  433.             valid: false,
  434.             message: "¿¨Ãܲ»´æÔÚ»ò²éѯʧ°Ü"
  435.         };
  436.     }
  437.    
  438.     // ¸ù¾Ýʵ¼ÊÏìÓ¦½á¹¹µ÷ÕûÅжÏÂß¼­
  439.     return {
  440.         valid: true,
  441.         info: info,
  442.         message: "¿¨ÃÜÓÐЧ"
  443.     };
  444. }

  445. // =============================================================================
  446. // 10. JavaScript ±äÁ¿×ÛºÏʾÀý£¨»ùÓÚÎĵµËµÃ÷£©
  447. // =============================================================================

  448. /**
  449. * JavaScript ±äÁ¿»ù´¡Ê¾Àý - Ñϸñ°´ÕÕÎĵµËµÃ÷
  450. * ÑÝʾ±äÁ¿µÄ»ù±¾¸ÅÄî¡¢ÉùÃ÷¡¢¸³ÖµºÍʹÓÃ
  451. */
  452. function variableBasicsExample() {
  453.     printl("========================================");
  454.     printl("    JavaScript ±äÁ¿»ù´¡Ê¾Àý");
  455.     printl("========================================");
  456.    
  457.     // 1. »ù±¾±äÁ¿ÉùÃ÷ºÍËãÊõÔËË㣨ÎĵµµÚ3-11ÐУ©
  458.     var x = 5;
  459.     var y = 6;
  460.     var z = x + y;
  461.     printl("¡¾»ù±¾±äÁ¿¡¿x=" + x + ", y=" + y + ", z=x+y=" + z);
  462.     printl("˵Ã÷£º±äÁ¿¾ÍÏñ´úÊýÖеÄ×Öĸ£¬ÓÃÓÚ´æ´¢Êý¾Ý");
  463.    
  464.     // 2. ±äÁ¿ÃüÃû¹æÔò£¨ÎĵµµÚ13-19ÐУ©
  465.     var age = 25;              // ÃèÊöÐÔÃû³Æ
  466.     var sum = 100;             // ÃèÊöÐÔÃû³Æ
  467.     var totalVolume = 500;     // ÍÕ·åÃüÃû
  468.     var _private = "˽ÓÐ";     // Ï»®Ïß¿ªÍ·£¨²»ÍƼö£©
  469.     var $special = "ÌØÊâ";     // $¿ªÍ·£¨²»ÍƼö£©
  470.     printl("¡¾±äÁ¿ÃüÃû¡¿age=" + age + ", sum=" + sum + ", totalVolume=" + totalVolume);
  471.     printl("×¢Ò⣺±äÁ¿ÃûÇø·Ö´óСд£¬y ºÍ Y ÊDz»Í¬µÄ±äÁ¿");
  472.    
  473.     // 3. Êý¾ÝÀàÐÍ - Êý×ÖºÍ×Ö·û´®£¨ÎĵµµÚ21-30ÐУ©
  474.     var pi = 3.14;             // ÊýÖµ£¬²»ÓÃÒýºÅ
  475.     var person = "John Doe";   // ×Ö·û´®£¬ÓÃË«ÒýºÅ
  476.     var answer = 'Yes I am!';  // ×Ö·û´®£¬Óõ¥ÒýºÅ
  477.     var wrongNumber = "100";   // ÕâÊÇ×Ö·û´®£¬²»ÊÇÊý×Ö£¡
  478.     printl("¡¾Êý¾ÝÀàÐÍ¡¿");
  479.     printl("ÊýÖµ pi=" + pi + " (ÀàÐÍ: " + typeof pi + ")");
  480.     printl("×Ö·û´® person=" + person + " (ÀàÐÍ: " + typeof person + ")");
  481.     printl("×Ö·û´®ÐÎʽµÄÊý×Ö wrongNumber=" + wrongNumber + " (ÀàÐÍ: " + typeof wrongNumber + ")");
  482.    
  483.     // 4. ³£Á¿ÉùÃ÷£¨ÎĵµµÚ27-28ÐУ©
  484.     const PI_CONSTANT = 3.141592653589793;
  485.     printl("¡¾³£Á¿¡¿PI_CONSTANT=" + PI_CONSTANT);
  486.     printl("˵Ã÷£ºconst ±íʾ³£Á¿£¬Öµ²»ÄÜÐÞ¸Ä");
  487.    
  488.     // 5. ÉùÃ÷±äÁ¿µ«²»¸³Öµ£¨ÎĵµµÚ32-40ÐУ©
  489.     var carname;               // ÉùÃ÷µ«Î´¸³Öµ
  490.     printl("¡¾Î´³õʼ»¯±äÁ¿¡¿carname=" + carname + " (ֵΪ undefined)");
  491.     carname = "Volvo";         // ºóÐø¸³Öµ
  492.     printl("¸³Öµºó carname=" + carname);
  493.    
  494.     // 6. Ò»ÌõÓï¾äÉùÃ÷¶à¸ö±äÁ¿£¨ÎĵµµÚ42-48ÐУ©
  495.     var lastname = "Doe", age2 = 30, job = "carpenter";
  496.     printl("¡¾¶à±äÁ¿ÉùÃ÷¡¿lastname=" + lastname + ", age=" + age2 + ", job=" + job);
  497.    
  498.     var a, b, c = 1;
  499.     printl("²¿·Ö³õʼ»¯£ºa=" + a + " (undefined), b=" + b + " (undefined), c=" + c);
  500. }

  501. /**
  502. * ±äÁ¿×÷ÓÃÓòʾÀý - È«¾Ö±äÁ¿ºÍ¾Ö²¿±äÁ¿£¨ÎĵµµÚ62-76ÐУ©
  503. */
  504. function variableScopeExample() {
  505.     printl("========================================");
  506.     printl("    ±äÁ¿×÷ÓÃÓòʾÀý");
  507.     printl("========================================");
  508.    
  509.     // È«¾Ö±äÁ¿£¨ÎĵµµÚ62-67ÐУ©
  510.     var carName = "Volvo";
  511.     printl("¡¾È«¾Ö±äÁ¿¡¿ÔÚº¯ÊýÍâÉùÃ÷: carName=" + carName);
  512.    
  513.     function myFunction() {
  514.         // ÕâÀï¿ÉÒÔʹÓÃÈ«¾Ö±äÁ¿ carName
  515.         printl("  º¯ÊýÄÚ²¿·ÃÎÊÈ«¾Ö±äÁ¿: carName=" + carName);
  516.         
  517.         // ¾Ö²¿±äÁ¿£¨ÎĵµµÚ70-76ÐУ©
  518.         var localCarName = "BMW";
  519.         printl("  º¯ÊýÄÚ²¿ÉùÃ÷¾Ö²¿±äÁ¿: localCarName=" + localCarName);
  520.     }
  521.    
  522.     myFunction();
  523.     printl("¡¾×¢Òâ¡¿ÔÚº¯ÊýÍâÎÞ·¨·ÃÎʾֲ¿±äÁ¿ localCarName");
  524.    
  525.     // ÑÝʾȫ¾Ö±äÁ¿¿ÉÒÔÔÚÈκεط½Ê¹ÓÃ
  526.     printl("º¯ÊýÖ´ÐкóÈÔ¿É·ÃÎÊÈ«¾Ö±äÁ¿: carName=" + carName);
  527. }

  528. /**
  529. * ¿é¼¶×÷ÓÃÓòʾÀý - let ºÍ const£¨ÎĵµµÚ79-107ÐУ©
  530. */
  531. function blockScopeExample() {
  532.     printl("========================================");
  533.     printl("    ¿é¼¶×÷ÓÃÓòʾÀý (let/const)");
  534.     printl("========================================");
  535.    
  536.     // 1. var ²»¾ß±¸¿é¼¶×÷ÓÃÓò£¨ÎĵµµÚ80-81ÐУ©
  537.     printl("¡¾var µÄ×÷ÓÃÓò¡¿");
  538.     {
  539.         var x = 2;
  540.         printl("  ÔÚ´úÂë¿éÄÚÉùÃ÷ var x=" + x);
  541.     }
  542.     printl("  ÔÚ´úÂë¿éÍâÈÔ¿É·ÃÎÊ: x=" + x + " (var ûÓп鼶×÷ÓÃÓò)");
  543.    
  544.     // 2. let ¾ß±¸¿é¼¶×÷ÓÃÓò£¨ÎĵµµÚ83-85ÐУ©
  545.     printl("¡¾let µÄ×÷ÓÃÓò¡¿");
  546.     {
  547.         let y = 3;
  548.         printl("  ÔÚ´úÂë¿éÄÚÉùÃ÷ let y=" + y);
  549.     }
  550.     printl("  ÔÚ´úÂë¿éÍâÎÞ·¨·ÃÎÊ let y (»á±¨´í)");
  551.    
  552.     // 3. ÖØÐ¶¨Òå±äÁ¿µÄ¶Ô±È£¨ÎĵµµÚ87-99ÐУ©
  553.     printl("¡¾ÖØÐ¶¨Òå±äÁ¿¶Ô±È¡¿");
  554.     var a = 10;
  555.     printl("  var a=10 (Íⲿ)");
  556.     {
  557.         var a = 2;  // Õâ»á¸²¸ÇÍⲿµÄ a
  558.         printl("  var a=2 (ÄÚ²¿¿é)");
  559.     }
  560.     printl("  ¿éÖ´Ðкó a=" + a + " (±»ÄÚ²¿¸²¸ÇÁË)");
  561.    
  562.     var b = 10;
  563.     printl("  var b=10 (Íⲿ)");
  564.     {
  565.         let b = 2;  // ÕâÊÇеĿ鼶±äÁ¿£¬²»Ó°ÏìÍⲿ
  566.         printl("  let b=2 (ÄÚ²¿¿é)");
  567.     }
  568.     printl("  ¿éÖ´Ðкó b=" + b + " (±£³ÖÔ­Öµ£¬Î´±»Ó°Ïì)");
  569.    
  570.     // 4. Ñ­»·ÖеÄ×÷ÓÃÓò£¨ÎĵµµÚ101-107ÐУ©
  571.     printl("¡¾Ñ­»·ÖеÄ×÷ÓÃÓò¡¿");
  572.     var i = 5;
  573.     for (var i = 0; i < 3; i++) {
  574.         // Ñ­»·ÖÐʹÓà var
  575.     }
  576.     printl("  Ê¹Óà var: Ñ­»·ºó i=" + i + " (Ñ­»·Ó°ÏìÁËÍⲿ±äÁ¿)");
  577.    
  578.     var j = 5;
  579.     for (let j = 0; j < 3; j++) {
  580.         // Ñ­»·ÖÐʹÓà let
  581.     }
  582.     printl("  Ê¹Óà let: Ñ­»·ºó j=" + j + " (Íⲿ±äÁ¿Î´ÊÜÓ°Ïì)");
  583. }

  584. /**
  585. * ±äÁ¿ÖØÐÂÉùÃ÷ºÍÖØÖÃʾÀý£¨ÎĵµµÚ109-147ÐУ©
  586. */
  587. function variableRedeclarationExample() {
  588.     printl("========================================");
  589.     printl("    ±äÁ¿ÖØÐÂÉùÃ÷ºÍÖØÖÃ");
  590.     printl("========================================");
  591.    
  592.     // 1. ¾Ö²¿±äÁ¿£ºvar ºÍ let ÀàËÆ£¨ÎĵµµÚ109-115ÐУ©
  593.     printl("¡¾º¯ÊýÄڵľֲ¿±äÁ¿¡¿");
  594.     function testVar() {
  595.         var carName = "Volvo";
  596.         printl("  var ÉùÃ÷: carName=" + carName);
  597.     }
  598.     function testLet() {
  599.         let carName = "Volvo";
  600.         printl("  let ÉùÃ÷: carName=" + carName);
  601.     }
  602.     testVar();
  603.     testLet();
  604.     printl("  Á½ÕßÔÚº¯ÊýÄÚ¶¼ÊǾֲ¿×÷ÓÃÓò");
  605.    
  606.     // 2. È«¾Ö±äÁ¿£ºvar ºÍ let ÀàËÆ£¨ÎĵµµÚ117-123ÐУ©
  607.     printl("¡¾È«¾Ö±äÁ¿¡¿");
  608.     var globalX = 2;
  609.     let globalY = 2;
  610.     printl("  var globalX=" + globalX + " (È«¾Ö×÷ÓÃÓò)");
  611.     printl("  let globalY=" + globalY + " (È«¾Ö×÷ÓÃÓò)");
  612.    
  613.     // 3. ÖØÖñäÁ¿£¨ÎĵµµÚ124-147ÐУ©
  614.     printl("¡¾±äÁ¿ÖØÖùæÔò¡¿");
  615.    
  616.     // var ¿ÉÒÔ¶à´ÎÉùÃ÷
  617.     var m = 2;
  618.     var m = 3;  // ºÏ·¨
  619.     printl("  var m=2; var m=3; ¡ú m=" + m + " (ºÏ·¨)");
  620.    
  621.     // let ²»ÄÜÔÚͬһ×÷ÓÃÓòÖØ¸´ÉùÃ÷
  622.     var n = 2;
  623.     // let n = 3;  // ²»ºÏ·¨£¡»á±¨´í
  624.     printl("  var n=2; let n=3; ¡ú ²»ºÏ·¨(ͬһ×÷ÓÃÓò)");
  625.    
  626.     // ÔÚ²»Í¬¿éÖпÉÒÔ
  627.     let p = 2;
  628.     printl("  let p=2 (Íⲿ)");
  629.     {
  630.         let p = 3;  // ºÏ·¨£¬²»Í¬¿é
  631.         printl("  { let p=3 } (ÄÚ²¿¿é£¬ºÏ·¨)");
  632.     }
  633.     printl("  Íⲿ p=" + p + " (δ±»Ó°Ïì)");
  634.    
  635.     // let ºÍ var ²»ÄÜ»ìÓÃ
  636.     let q = 2;
  637.     // var q = 3;  // ²»ºÏ·¨
  638.     printl("  let q=2; var q=3; ¡ú ²»ºÏ·¨(ͬһ×÷ÓÃÓò)");
  639. }

  640. /**
  641. * const ¹Ø¼ü×ÖÏê½â£¨ÎĵµµÚ155-214ÐУ©
  642. */
  643. function constKeywordExample() {
  644.     printl("========================================");
  645.     printl("    const ¹Ø¼ü×ÖÏê½â");
  646.     printl("========================================");
  647.    
  648.     // 1. const ±ØÐë³õʼ»¯£¨ÎĵµµÚ156-171ÐУ©
  649.     printl("¡¾const »ù±¾¹æÔò¡¿");
  650.     const PI = 3.141592653589793;
  651.     printl("  const PI=" + PI + " (ÕýÈ·£ºÉùÃ÷ʱ³õʼ»¯)");
  652.    
  653.     // const PI2;  // ´íÎó£¡const ±ØÐë³õʼ»¯
  654.     // PI2 = 3.14;  // ÕâÑùÒ²²»ÐÐ
  655.     printl("  const PI2; ¡ú ´íÎó(const ±ØÐë³õʼ»¯)");
  656.    
  657.     // 2. const ²»ÄÜÖØÐ¸³Öµ£¨ÎĵµµÚ156-157ÐУ©
  658.     printl("¡¾const ²»¿ÉÖØÐ¸³Öµ¡¿");
  659.     const MAX_VALUE = 100;
  660.     printl("  const MAX_VALUE=" + MAX_VALUE);
  661.     // MAX_VALUE = 200;  // ±¨´í£¡
  662.     // MAX_VALUE = MAX_VALUE + 10;  // ±¨´í£¡
  663.     printl("  MAX_VALUE=200; ¡ú ±¨´í(const ²»ÄÜÖØÐ¸³Öµ)");
  664.    
  665.     // 3. const ºÍ let µÄÇø±ð£¨ÎĵµµÚ159-164ÐУ©
  666.     printl("¡¾const vs let¡¿");
  667.     printl("  Ïàͬµã£º¶¼Êǿ鼶×÷ÓÃÓò");
  668.     printl("  Ïàͬµã£º¶¼²»ÄܺÍͬ×÷ÓÃÓòÆäËû±äÁ¿Í¬Ãû");
  669.     printl("  ²»Í¬µã£ºconst ±ØÐë³õʼ»¯£¬let ²»ÓÃ");
  670.     printl("  ²»Í¬µã£ºconst ²»ÄÜÖØÐ¸³Öµ£¬let ¿ÉÒÔ");
  671.    
  672.     // 4. const ²¢·ÇÕæÕýµÄ³£Á¿ - ¶ÔÏóºÍÊý×é¿É±ä£¨ÎĵµµÚ173-188ÐУ©
  673.     printl("¡¾const µÄ±¾ÖÊ£º³£Á¿ÒýÓ㬷dz£Á¿Öµ¡¿");
  674.    
  675.     // ¶ÔÏóʾÀý
  676.     const car = {type:"Fiat", model:"500", color:"white"};
  677.     printl("  const car = " + JSON.stringify(car));
  678.     car.color = "red";      // ¿ÉÒÔÐÞ¸ÄÊôÐÔ
  679.     car.owner = "Johnson";  // ¿ÉÒÔÌí¼ÓÊôÐÔ
  680.     printl("  Ð޸ĺó: " + JSON.stringify(car));
  681.     printl("  ËµÃ÷£º¿ÉÒÔÐ޸ĶÔÏóµÄÊôÐÔºÍÌí¼ÓÐÂÊôÐÔ");
  682.    
  683.     // const car2 = {type:"Volvo"};  // ´íÎ󣡲»ÄÜÖØÐ¸³ÖµÕû¸ö¶ÔÏó
  684.     printl("  car={type:'Volvo'}; ¡ú ±¨´í(²»ÄÜÖØÐ¸³Öµ)");
  685.    
  686.     // Êý×éʾÀý
  687.     const cars = ["Saab", "Volvo", "BMW"];
  688.     printl("  const cars = " + JSON.stringify(cars));
  689.     cars[0] = "Toyota";     // ¿ÉÒÔÐÞ¸ÄÔªËØ
  690.     cars.push("Audi");      // ¿ÉÒÔÌí¼ÓÔªËØ
  691.     printl("  Ð޸ĺó: " + JSON.stringify(cars));
  692.     printl("  ËµÃ÷£º¿ÉÒÔÐÞ¸ÄÊý×éÔªËØºÍÌí¼ÓÐÂÔªËØ");
  693.    
  694.     // const cars2 = ["Toyota", "Volvo"];  // ´íÎ󣡲»ÄÜÖØÐ¸³ÖµÕû¸öÊý×é
  695.     printl("  cars=['Toyota','Volvo']; ¡ú ±¨´í(²»ÄÜÖØÐ¸³Öµ)");
  696.    
  697.     // 5. const µÄÖØÖùæÔò£¨ÎĵµµÚ189-214ÐУ©
  698.     printl("¡¾const ÖØÖùæÔò×ܽ᡿");
  699.     const r = 2;
  700.     printl("  const r=2; (ºÏ·¨)");
  701.     // const r = 3;  // ²»ºÏ·¨
  702.     // r = 3;        // ²»ºÏ·¨
  703.     // var r = 3;    // ²»ºÏ·¨
  704.     // let r = 3;    // ²»ºÏ·¨
  705.     printl("  Ö®ºó²»ÄÜÔÙÉùÃ÷»ò¸³Öµ r (ËùÓз½Ê½¶¼²»ºÏ·¨)");
  706.    
  707.     printl("  RhinoÒýÇæËµÃ÷£º");
  708.     printl("  ÔÚAIWROKµÄRhinoÒýÇæÖУ¬constÔÚº¯Êý×÷ÓÃÓòÄÚ²»ÄÜÖØ¸´ÉùÃ÷");
  709.     printl("  ¼´Ê¹ÔÚ²»Í¬¿éÖÐÒ²»á±¨´í£¬ÕâÓë±ê×¼ES6ÐÐΪ²»Í¬");
  710.     printl("  ½¨Ò飺ÔÚRhinoÖбÜÃâÔÚͬһº¯ÊýÄÚ¶à´ÎʹÓÃͬÃûconst");
  711. }

  712. /**
  713. * ±äÁ¿ÌáÉýʾÀý£¨Hoisting£©£¨ÎĵµµÚ149-153ÐУ©
  714. */
  715. function hoistingExample() {
  716.     printl("========================================");
  717.     printl("    ±äÁ¿ÌáÉýʾÀý (Hoisting)");
  718.     printl("========================================");
  719.    
  720.     // 1. var ±äÁ¿ÌáÉý£¨ÎĵµµÚ150-151ÐУ©
  721.     printl("¡¾var ±äÁ¿ÌáÉý¡¿");
  722.     printl("  ÔÚÉùÃ÷ǰʹÓà carName: " + carName);
  723.     var carName;  // ±äÁ¿»á±»ÌáÉýµ½×÷ÓÃÓò¶¥²¿
  724.     carName = "Volvo";
  725.     printl("  ÉùÃ÷²¢¸³Öµºó: " + carName);
  726.     printl("  ËµÃ÷£ºvar ÉùÃ÷µÄ±äÁ¿»á±»ÌáÉý£¬µ«¸³ÖµÎª undefined");
  727.    
  728.     // 2. let ±äÁ¿²»ÌáÉý£¨ÎĵµµÚ152-153ÐУ©
  729.     printl("¡¾let ±äÁ¿²»ÌáÉý¡¿");
  730.     // printl("  ÔÚÉùÃ÷ǰʹÓà letCar: " + letCar);  // ±¨´í£¡
  731.     let letCar = "BMW";
  732.     printl("  ÉùÃ÷ºóʹÓà letCar: " + letCar);
  733.     printl("  ËµÃ÷£ºlet ²»»á±»ÌáÉý£¬ÉùÃ÷ǰʹÓûᱨ´í(ÔÝʱÐÔËÀÇø)");
  734.    
  735.     // 3. ʵ¼ÊÑÝʾ
  736.     printl("¡¾Êµ¼Ê¶Ô±È¡¿");
  737.    
  738.     function testHoisting() {
  739.         printl("  var ²âÊÔ:");
  740.         printl("    ÉùÃ÷ǰ: x=" + x);  // undefined
  741.         var x = 5;
  742.         printl("    ÉùÃ÷ºó: x=" + x);  // 5
  743.         
  744.         printl("  let ²âÊÔ:");
  745.         // printl("    ÉùÃ÷ǰ: y=" + y);  // ±¨´í£¡
  746.         let y = 10;
  747.         printl("    ÉùÃ÷ºó: y=" + y);  // 10
  748.     }
  749.    
  750.     testHoisting();
  751. }

  752. /**
  753. * ʵ¼ÊÓ¦ÓÃʾÀý - ×ÛºÏʹÓø÷ÖÖ±äÁ¿ÀàÐÍ
  754. */
  755. function practicalVariableUsage() {
  756.     printl("========================================");
  757.     printl("    ʵ¼ÊÓ¦Óà - ×ÛºÏʾÀý");
  758.     printl("========================================");
  759.    
  760.     // ʹÓà const ¶¨ÒåÅäÖó£Á¿
  761.     const CONFIG = {
  762.         appName: "AIWROK",
  763.         version: "1.0.0",
  764.         maxRetries: 3
  765.     };
  766.     printl("¡¾Ó¦ÓÃÅäÖá¿");
  767.     printl("  Ó¦ÓÃÃû: " + CONFIG.appName);
  768.     printl("  °æ±¾: " + CONFIG.version);
  769.     printl("  ×î´óÖØÊÔ: " + CONFIG.maxRetries);
  770.    
  771.     // ʹÓà let ¶¨Òå¿É±ä״̬
  772.     let retryCount = 0;
  773.     let isConnected = false;
  774.     printl("¡¾ÔËÐÐʱ״̬¡¿");
  775.     printl("  ÖØÊÔ´ÎÊý: " + retryCount);
  776.     printl("  Á¬½Ó״̬: " + isConnected);
  777.    
  778.     // Ä£Äâ״̬±ä»¯
  779.     isConnected = true;
  780.     retryCount = 1;
  781.     printl("  ×´Ì¬¸üкó:");
  782.     printl("  ÖØÊÔ´ÎÊý: " + retryCount);
  783.     printl("  Á¬½Ó״̬: " + isConnected);
  784.    
  785.     // ʹÓà var ¶¨ÒåÁÙʱ±äÁ¿
  786.     var tempResult = 10 + 20;
  787.     printl("¡¾ÁÙʱ¼ÆËã¡¿");
  788.     printl("  10 + 20 = " + tempResult);
  789.    
  790.     // ʵ¼ÊÓ¦Óó¡¾°£º¿¨ÃܹÜÀíϵͳÖеıäÁ¿Ê¹ÓÃ
  791.     printl("¡¾¿¨ÃÜϵͳʾÀý¡¿");
  792.     const CARD_RULES = {
  793.         minLength: 5,
  794.         mustStartWithLetter: true,
  795.         validTypes: ["day", "month", "quarter", "halfYear", "year"]
  796.     };
  797.    
  798.     var cardCode = "t2026040001";
  799.     var cardType = "month";
  800.     var devices = 2;
  801.    
  802.     printl("  ¿¨ÃÜ: " + cardCode);
  803.     printl("  ÀàÐÍ: " + cardType);
  804.     printl("  É豸Êý: " + devices);
  805.     printl("  ¹æÔò: ×îС³¤¶È" + CARD_RULES.minLength + "룬±ØÐë×Öĸ¿ªÍ·");
  806. }



  807. /**
  808. * ¸ß¼¶±äÁ¿Ä£Ê½ - ±Õ°üºÍÊý¾Ý·â×°
  809. */
  810. function advancedVariablePatterns() {
  811.     printl("========================================");
  812.     printl("    ¸ß¼¶±äÁ¿Ä£Ê½ - ±Õ°ü");
  813.     printl("========================================");
  814.    
  815.     // ʹÓñհü´´½¨Ë½ÓбäÁ¿
  816.     printl("¡¾¼ÆÊýÆ÷Ä£¿é - ʹÓñհü¡¿");
  817.     var counter = (function() {
  818.         var privateCount = 0;  // ˽ÓбäÁ¿£¬ÍⲿÎÞ·¨Ö±½Ó·ÃÎÊ
  819.         
  820.         return {
  821.             increment: function() {
  822.                 privateCount++;
  823.                 return privateCount;
  824.             },
  825.             decrement: function() {
  826.                 privateCount--;
  827.                 return privateCount;
  828.             },
  829.             getCount: function() {
  830.                 return privateCount;
  831.             }
  832.         };
  833.     })();
  834.    
  835.     printl("  ³õʼֵ: " + counter.getCount());
  836.     printl("  µÝÔöºó: " + counter.increment());
  837.     printl("  ÔÙµÝÔö: " + counter.increment());
  838.     printl("  µÝ¼õºó: " + counter.decrement());
  839.     printl("  ËµÃ÷£ºprivateCount ÊÇ˽ÓбäÁ¿£¬Ö»ÄÜͨ¹ý·½·¨·ÃÎÊ");
  840.    
  841.     // ¹¤³§º¯Êýģʽ
  842.     printl("¡¾¹¤³§º¯Êý - ´´½¨Óû§¶ÔÏó¡¿");
  843.     function createUser(name, age) {
  844.         var privateAge = age;  // ˽ÓбäÁ¿
  845.         
  846.         return {
  847.             getName: function() {
  848.                 return name;
  849.             },
  850.             getAge: function() {
  851.                 return privateAge;
  852.             },
  853.             celebrateBirthday: function() {
  854.                 privateAge++;
  855.                 printl("    " + name + " ¹ýÉúÈÕÁË£¡ÏÖÔÚ " + privateAge + " Ëê");
  856.             }
  857.         };
  858.     }
  859.    
  860.     var user1 = createUser("Alice", 25);
  861.     var user2 = createUser("Bob", 30);
  862.    
  863.     printl("  " + user1.getName() + " µÄÄêÁä: " + user1.getAge());
  864.     printl("  " + user2.getName() + " µÄÄêÁä: " + user2.getAge());
  865.    
  866.     user1.celebrateBirthday();
  867.     printl("  " + user1.getName() + " µÄÐÂÄêÁä: " + user1.getAge());
  868.     printl("  ËµÃ÷£ºÃ¿¸öÓû§ÊµÀý¶¼ÓжÀÁ¢µÄ˽ÓбäÁ¿");
  869.    
  870.     // Ä£¿éģʽ
  871.     printl("¡¾Ä£¿éģʽ - ×éÖ¯´úÂë¡¿");
  872.     var MathHelper = (function() {
  873.         const PI = 3.141592653589793;  // ³£Á¿
  874.         
  875.         return {
  876.             add: function(a, b) {
  877.                 return a + b;
  878.             },
  879.             multiply: function(a, b) {
  880.                 return a * b;
  881.             },
  882.             circleArea: function(radius) {
  883.                 return PI * radius * radius;
  884.             }
  885.         };
  886.     })();
  887.    
  888.     printl("  ¼Ó·¨: 5 + 3 = " + MathHelper.add(5, 3));
  889.     printl("  ³Ë·¨: 4 ¡Á 6 = " + MathHelper.multiply(4, 6));
  890.     printl("  Ô²Ãæ»ý(r=5): " + MathHelper.circleArea(5).toFixed(2));
  891.     printl("  ËµÃ÷£ºPI ÊÇÄ£¿éÄÚ²¿µÄ³£Á¿£¬ÍⲿÎÞ·¨ÐÞ¸Ä");
  892. }

  893. /**
  894. * ÔËÐÐËùÓбäÁ¿Ê¾Àý
  895. */
  896. function runAllVariableExamples() {
  897.     printl("########################################");
  898.     printl("#   JavaScript ±äÁ¿×ÛºÏʾÀý´óÈ«       #");
  899.     printl("########################################");
  900.    
  901.     // ÒÀ´ÎÔËÐи÷¸öʾÀýº¯Êý£¬Ã¿¸öʾÀýÖ®¼ä¼ä¸ô2Ãë
  902.     variableBasicsExample();
  903.     sleep.second(2);  // ÔÝÍ£2Ãë
  904.    
  905.     variableScopeExample();
  906.     sleep.second(2);  // ÔÝÍ£2Ãë
  907.    
  908.     blockScopeExample();
  909.     sleep.second(2);  // ÔÝÍ£2Ãë
  910.    
  911.     variableRedeclarationExample();
  912.     sleep.second(2);  // ÔÝÍ£2Ãë
  913.    
  914.     constKeywordExample();
  915.     sleep.second(2);  // ÔÝÍ£2Ãë
  916.    
  917.     hoistingExample();
  918.     sleep.second(2);  // ÔÝÍ£2Ãë
  919.    
  920.     practicalVariableUsage();
  921.     sleep.second(2);  // ÔÝÍ£2Ãë
  922.    
  923.     advancedVariablePatterns();
  924.    
  925.     printl("########################################");
  926.     printl("#   ËùÓбäÁ¿Ê¾ÀýÔËÐÐÍê³É              #");
  927.     printl("########################################");
  928. }

  929. // =============================================================================
  930. // 11. Ö÷³ÌÐòÈë¿Ú£¨°üº¬±äÁ¿Ê¾Àý£©
  931. // =============================================================================

  932. // ÔËÐÐÍêÕû¹¤×÷Á÷³ÌÑÝʾ
  933. mainWorkflow();

  934. // ÔËÐÐ JavaScript ±äÁ¿×ÛºÏʾÀý
  935. runAllVariableExamples();

  936. // ʾÀý£ºÅúÁ¿´´½¨¿¨ÃÜ£¨È¡Ïû×¢ÊÍÒÔʹÓã©
  937. /*
  938. var token = getToken();
  939. if (token) {
  940.     batchCreateCards(token, "t2026", 5, "day", 1);
  941. }
  942. */

  943. // ʾÀý£ºµ¥¶Àµ÷ÓÃij¸ö¹¦ÄÜ
  944. /*
  945. // »ñÈ¡µ±Ç°É豸 IMEI
  946. var imei = device.getIMEI();
  947. printl("µ±Ç°É豸 IMEI: " + imei);

  948. // »»»ú¼¤»î
  949. activateNewDevice("t2026040001", imei);
  950. */

  951. printl("³ÌÐòÖ´ÐÐÍê±Ï£¡");
¸´ÖÆ´úÂë













»Ø¸´

ʹÓõÀ¾ß ¾Ù±¨

±¾°æ»ý·Ö¹æÔò

¹Ø±Õ

QQ|»ÓªÏúÈí¼þ×ÛºÏÌÖÂÛ|»ÓªÏúÈí¼þÓÐÎʱشð|»ÓªÏúÈí¼þ½Ì³Ì×¨Çø|»ÓªÏúÈí¼þPOST½Å±¾·ÖÏí|»ÓªÏúÈí¼þÆÕͨ½Å±¾·ÖÏí|»ÓªÏúÈí¼þÈí¼þ×ÊѶ|»ÓªÏúÈí¼þ¾«Æ·Èí¼þ|»ÓªÏúÈí¼þ¸üй«¸æ|ÓªÏúÈí¼þ|B2BÈí¼þ|B2BÍøÂçÈí¼þ ( ¾©ICP±¸09078825ºÅ )±¾ÍøÕ¾¿ª·¢µÄÓªÏúÈí¼þÊÇÒ»¿îеÄÍøÂçÓªÏúÈí¼þ£¬Õâ¿îÓªÏú¿ÉÒÔÈ¥ÍøÕ¾Èí¼þ£¬²©¿ÍÈí¼þ£¬B2BÈí¼þ£¬·ÖÀàÐÅÏ¢Íø·¢Ìù£¬¿ÉÒÔÇÀɳ·¢£¬¿ÉÒÔµ½°Ù¶ÈÎÄ¿âÉÏ´«WORDÎĵµ£¬¿ÉÒÔµ½Ò»Ð©ÊÇÏà²áÍøÕ¾×Ô¶¯ÉÏ´«Í¼Æ¬£¬Õâ¸ö×Ô¶¯·¢ÌûÈí¼þ×Ô´øÔÆÖ©Ö룬¼Ó¿ìÊÕ¼£¬ÓÐ6ÖÖ¶Ô½Ó´òÂë½Ó¿Ú£¬·½±ã£¬Ð§Âʸߣ¬Ëٶȿ죬¶øÇÒ¶ÔÍ϶¯µÄÑéÖ¤ÂëÈ«ÍøµÚÒ»¼Ò¶À¼ÒÖ§³Ö£¬È«²¿Ô­´´¼¼Êõ£¬¶À¼ÒÑз¢£¬Õý°æÔ­´´´ø°æÈ¨Èí¼þ¡£Ñ¡ÔñÍòÄÜÓªÏúÈí¼þ£¬¾ÍÑ¡ÔñÁËÒ»ÖÖ׬ǮµÄЧÂÊ£¬´ÓûÓб»³¬Ô½¹ý£¬Ò»Ö±ÔÚŬÁ¦Ñз¢Ð¼¼Êõ¡£·Å·ÉÃÎÏ룬½â·ÅË«ÊÖ£¬À´µã´´Ò⣬³É¾ÍÄãµÄÃÎÏ룬¾ÍÔÚÍòÄÜÓªÏúÈí¼þ¿ªÊ¼

map2

GMT+8, 2026-4-28 08:08 , Processed in 0.248459 second(s), 34 queries .

¿ìËٻظ´ ·µ»Ø¶¥²¿ ·µ»ØÁбí