|
|
°²×¿½Å±¾Ê¾ÀýPOSTºÍGET±äÁ¿·½·¨µÄʵ¼ÊÓ¦ÓÃ
- /**
- * Ö÷½Å±¾.js - ¿¨ÃܹÜÀíϵͳÍêÕûʾÀý
- * »ùÓÚ°²×¿POST ºÍ GET ·½·¨µÄʵ¼ÊÓ¦ÓÃ
- * ÊÊÓñ¾Îĵµ ES5 ϵͳ°²×¿ JavaScript ÒýÇæ Rhino
- */
- // =============================================================================
- // 0. ÈÕ־ǎÓÅäÖ㨽« printl ÖØ¶¨Ïòµ½ console.log£©
- // =============================================================================
- // Ç¿ÖÆ½« printl ÖØ¶¨Ïòµ½ console.log£¬ÒÔ±ã LogBridge Äܲ¶»ñÈÕÖ¾
- var originalPrintl = (typeof printl !== 'undefined') ? printl : null;
- printl = function(message) {
- // ͬʱÊä³öµ½ console.log£¨»á±» LogBridge ²¶»ñµ½ H5£©
- if (typeof console !== 'undefined' && typeof console.log === 'function') {
- console.log(message);
- }
- // Èç¹ûÔÀ´ÓÐ printl£¬Ò²µ÷ÓÃËü£¨±£ÁôÔʼ¹¦ÄÜ£©
- if (originalPrintl) {
- originalPrintl(message);
- }
- };
- // =============================================================================
- // 1. ÅäÖó£Á¿
- // =============================================================================
- var API_BASE_URL = "http://api.autoapp.net.cn:1089";
- var APK_ORDER_URL = "http://api.autoapp.net.cn:1088";
- var ADMIN_USERNAME = "mm258"; // ²âÊÔÕ˺Å
- var ADMIN_PASSWORD = "fhdg148q"; // ²âÊÔÃÜÂë
- // =============================================================================
- // 2. »ñÈ¡ Token
- // =============================================================================
- /**
- * »ñÈ¡¹ÜÀí token
- * API: http://api.autoapp.net.cn:1089/token?username=ak123&password=123456&validateCode=1&rememberMe=false
- * @returns {String|null} ·µ»Ø token »ò null
- */
- function getToken() {
- try {
- var http = new okHttp();
-
- // ÉèÖÃÇëÇóÍ·
- http.setHeader("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36");
- http.setHeader("Content-Type", "application/x-www-form-urlencoded");
-
- // ¹¹½¨ÇëÇó URL
- var url = API_BASE_URL + "/token?username=" + ADMIN_USERNAME +
- "&password=" + ADMIN_PASSWORD +
- "&validateCode=1&rememberMe=false";
-
- printl("ÕýÔÚ»ñÈ¡ token...");
- printl("ÇëÇó URL: " + url);
- var response = http.get(url);
- printl("»ñÈ¡ token ÏìÓ¦£º" + response);
-
- // ½âÎö JSON ÏìÓ¦
- var jsonObj = JSON.parse(response);
-
- if (jsonObj.code === 0) {
- var token = jsonObj.msg; // msg ×ֶξÍÊÇ token
- printl("✓ Token »ñÈ¡³É¹¦£º" + token);
- return token;
- } else {
- printl("✗ Token »ñȡʧ°Ü£¬´íÎóÂ룺" + jsonObj.code);
- return null;
- }
- } catch (e) {
- printl("✗ »ñÈ¡ Token ʱ·¢ÉúÒì³££º" + e);
- return null;
- }
- }
- // =============================================================================
- // 3. »»»ú½Ó¿Ú
- // =============================================================================
- /**
- * »»»ú¼¤»î
- * API: http://api.autoapp.net.cn:1088/apkOrder/exitActivateNew?CardCode=¿¨ÃÜ&imei=»úÆ÷Âë
- * @param {String} cardCode ¿¨ÃÜ
- * @param {String} imei É豸 IMEI£¨Í¨¹ý device.getIMEI() »ñÈ¡£©
- * @returns {Boolean} ÊÇ·ñ³É¹¦
- */
- function activateNewDevice(cardCode, imei) {
- try {
- var http = new okHttp();
-
- // ÉèÖÃÇëÇóÍ·
- http.setHeader("User-Agent", "Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N)");
-
- // ¹¹½¨»»»ú½Ó¿Ú URL£¨×¢Ò⣺²ÎÊýÃûÊÇ CardCode£¬´óдC£©
- var url = APK_ORDER_URL + "/apkOrder/exitActivateNew?CardCode=" + cardCode + "&imei=" + imei;
-
- printl("=== »»»ú¼¤»î ===");
- printl("¿¨ÃÜ£º" + cardCode);
- printl("IMEI: " + imei);
- printl("ÇëÇó URL: " + url);
-
- var response = http.get(url);
- printl("»»»úÏìÓ¦£º" + response);
-
- // ¸ù¾Ýʵ¼ÊÏìÓ¦ÅжÏÊÇ·ñ³É¹¦
- if (response && response.indexOf("success") !== -1) {
- printl("✓ »»»ú¼¤»î³É¹¦");
- return true;
- } else {
- printl("✗ »»»ú¼¤»îʧ°Ü");
- return false;
- }
- } catch (e) {
- printl("✗ »»»ú¼¤»îÒì³££º" + e);
- return false;
- }
- }
- // =============================================================================
- // 4. ·¢¿¨½Ó¿Ú
- // =============================================================================
- /**
- * Ìí¼Óп¨ÃÜ
- * API: http://api.autoapp.net.cn:1089/system/activatecardv2/addCard?token=xxx&card=t23432&cardType=day&devices=1&remarks=
- * @param {String} token ¹ÜÀí token£¨Í¨¹ý getToken() »ñÈ¡£©
- * @param {String} card ¿¨ÃÜ£¨±ØÐë´óÓÚ5룬¿ªÍ·±ØÐë×Öĸ£©
- * @param {String} cardType ¿¨ÀàÐÍ£¨dayÌ쿨/monthÔ¿¨/quarter¼¾¿¨/halfYear°ëÄ꿨/yearÄ꿨£©
- * @param {Number} devices É豸ÊýÁ¿
- * @param {String} remarks ±¸×¢ÐÅÏ¢
- * @returns {Boolean} ÊÇ·ñ³É¹¦
- */
- function addCard(token, card, cardType, devices, remarks) {
- try {
- var http = new okHttp();
-
- // ÉèÖÃÇëÇóÍ·
- http.setHeader("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64)");
- http.setHeader("Content-Type", "application/json");
-
- // ¹¹½¨ URL
- var url = API_BASE_URL + "/system/activatecardv2/addCard?token=" + token +
- "&card=" + card +
- "&cardType=" + cardType +
- "&devices=" + devices +
- "&remarks=" + remarks;
-
- printl("=== Ìí¼Ó¿¨ÃÜ ===");
- printl("¿¨ÃÜ£º" + card);
- printl("ÀàÐÍ£º" + cardType);
- printl("É豸Êý£º" + devices);
- printl("±¸×¢£º" + remarks);
-
- var response = http.get(url);
- printl("·¢¿¨ÏìÓ¦£º" + response);
-
- // ³¢ÊÔ½âÎö JSON ÏìÓ¦
- try {
- var jsonObj = JSON.parse(response);
- if (jsonObj.code === 0 || jsonObj.success === true) {
- printl("✓ ¿¨ÃÜÌí¼Ó³É¹¦");
- return true;
- } else {
- printl("✗ ¿¨ÃÜÌí¼Óʧ°Ü");
- return false;
- }
- } catch (e) {
- // Èç¹û²»ÊÇ JSON£¬¼ì²éÏìÓ¦Îı¾
- if (response && response.indexOf("success") !== -1) {
- printl("✓ ¿¨ÃÜÌí¼Ó³É¹¦");
- return true;
- } else {
- printl("✗ ¿¨ÃÜÌí¼Óʧ°Ü");
- return false;
- }
- }
- } catch (e) {
- printl("✗ Ìí¼Ó¿¨ÃÜÒì³££º" + e);
- return false;
- }
- }
- // =============================================================================
- // 5. Ðø·Ñ½Ó¿Ú
- // =============================================================================
- /**
- * Ðø·Ñ¿¨ÃÜ
- * API: http://api.autoapp.net.cn:1089/system/activatecardv2/editCard?token=xxx&card=t23432&cardType=day&devices=1&remarks=
- * @param {String} token ¹ÜÀí token£¨Í¨¹ý getToken() »ñÈ¡£©
- * @param {String} card ¿¨ÃÜ£¨±ØÐë´óÓÚ5룬¿ªÍ·±ØÐë×Öĸ£©
- * @param {String} cardType ¿¨ÀàÐÍ£¨dayÌ쿨/monthÔ¿¨/quarter¼¾¿¨/halfYear°ëÄ꿨/yearÄ꿨£©
- * @param {Number} devices É豸ÊýÁ¿
- * @param {String} remarks ±¸×¢
- * @returns {Boolean} ÊÇ·ñ³É¹¦
- */
- function renewCard(token, card, cardType, devices, remarks) {
- try {
- var http = new okHttp();
-
- // ÉèÖÃÇëÇóÍ·
- http.setHeader("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64)");
- http.setHeader("Content-Type", "application/json");
-
- // ¹¹½¨ URL
- var url = API_BASE_URL + "/system/activatecardv2/editCard?token=" + token +
- "&card=" + card +
- "&cardType=" + cardType +
- "&devices=" + devices +
- "&remarks=" + remarks;
-
- printl("=== Ðø·Ñ¿¨ÃÜ ===");
- printl("¿¨ÃÜ£º" + card);
- printl("ÀàÐÍ£º" + cardType);
- printl("É豸Êý£º" + devices);
-
- var response = http.get(url);
- printl("Ðø·ÑÏìÓ¦£º" + response);
-
- // ³¢ÊÔ½âÎö JSON ÏìÓ¦
- try {
- var jsonObj = JSON.parse(response);
- if (jsonObj.code === 0 || jsonObj.success === true) {
- printl("✓ ¿¨ÃÜÐø·Ñ³É¹¦");
- return true;
- } else {
- printl("✗ ¿¨ÃÜÐø·Ñʧ°Ü");
- return false;
- }
- } catch (e) {
- if (response && response.indexOf("success") !== -1) {
- printl("✓ ¿¨ÃÜÐø·Ñ³É¹¦");
- return true;
- } else {
- printl("✗ ¿¨ÃÜÐø·Ñʧ°Ü");
- return false;
- }
- }
- } catch (e) {
- printl("✗ Ðø·Ñ¿¨ÃÜÒì³££º" + e);
- return false;
- }
- }
- // =============================================================================
- // 6. ²éѯ¿¨ÃÜÐÅÏ¢
- // =============================================================================
- /**
- * ²éѯ¿¨ÃÜÏêϸÐÅÏ¢
- * API: http://api.autoapp.net.cn:1089/system/activatecardv2/info?token=xxx&card=t23432
- * @param {String} token ¹ÜÀí token£¨Í¨¹ý getToken() »ñÈ¡£©
- * @param {String} card ¿¨ÃÜ
- * @returns {Object|null} ¿¨ÃÜÐÅÏ¢¶ÔÏó»ò null
- */
- function getCardInfo(token, card) {
- try {
- var http = new okHttp();
-
- // ÉèÖÃÇëÇóÍ·
- http.setHeader("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64)");
-
- // ¹¹½¨ URL
- var url = API_BASE_URL + "/system/activatecardv2/info?token=" + token + "&card=" + card;
-
- printl("=== ²éѯ¿¨ÃÜÐÅÏ¢ ===");
- printl("¿¨ÃÜ£º" + card);
-
- var response = http.get(url);
- printl("²éѯÏìÓ¦£º" + response);
-
- // ½âÎö JSON ÏìÓ¦
- var jsonObj = JSON.parse(response);
-
- if (jsonObj.code === 0) {
- printl("✓ ²éѯ³É¹¦");
- printl("¿¨ÃÜÐÅÏ¢£º" + JSON.stringify(jsonObj.data));
- return jsonObj.data;
- } else {
- printl("✗ ²éѯʧ°Ü");
- return null;
- }
- } catch (e) {
- printl("✗ ²éѯ¿¨ÃÜÐÅÏ¢Òì³££º" + e);
- return null;
- }
- }
- // =============================================================================
- // 7. ²éѯ¿¨ÃÜÉ豸Áбí
- // =============================================================================
- /**
- * ²éѯ¿¨Ãܰ󶨵ÄÉ豸Áбí
- * API: http://api.autoapp.net.cn:1089/system/activatecardv2/devices?token=xxx&card=t23432
- * @param {String} token ¹ÜÀí token£¨Í¨¹ý getToken() »ñÈ¡£©
- * @param {String} card ¿¨ÃÜ
- * @returns {Array|null} É豸Áбí»ò null
- */
- function getCardDevices(token, card) {
- try {
- var http = new okHttp();
-
- // ÉèÖÃÇëÇóÍ·
- http.setHeader("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64)");
-
- // ¹¹½¨ URL
- var url = API_BASE_URL + "/system/activatecardv2/devices?token=" + token + "&card=" + card;
-
- printl("=== ²éѯÉ豸Áбí ===");
- printl("¿¨ÃÜ£º" + card);
-
- var response = http.get(url);
- printl("É豸ÁбíÏìÓ¦£º" + response);
-
- // ½âÎö JSON ÏìÓ¦
- var jsonObj = JSON.parse(response);
-
- if (jsonObj.code === 0) {
- printl("✓ ²éѯ³É¹¦");
- var devices = jsonObj.data || jsonObj.list || [];
- printl("É豸ÊýÁ¿£º" + devices.length);
-
- // ±éÀúÏÔʾÉ豸ÐÅÏ¢
- for (var i = 0; i < devices.length; i++) {
- printl("É豸" + (i+1) + ": " + JSON.stringify(devices[i]));
- }
-
- return devices;
- } else {
- printl("✗ ²éѯʧ°Ü");
- return null;
- }
- } catch (e) {
- printl("✗ ²éѯÉ豸ÁбíÒì³££º" + e);
- return null;
- }
- }
- // =============================================================================
- // 8. ×ÛºÏʾÀý - ÍêÕûÒµÎñÁ÷³Ì
- // =============================================================================
- /**
- * ÍêÕûÒµÎñÁ÷³ÌÑÝʾ
- */
- function mainWorkflow() {
- printl("========================================");
- printl(" ¿¨ÃܹÜÀíϵͳ - ÍêÕû¹¤×÷Á÷³ÌÑÝʾ");
- printl("========================================");
-
- // ²½Öè 1: »ñÈ¡ Token
- var token = getToken();
- if (!token) {
- printl("✗ ÎÞ·¨»ñÈ¡ token£¬Á÷³ÌÖÕÖ¹");
- return;
- }
-
- // ²½Öè 2: Ìí¼Óп¨ÃÜ
- var newCard = "t2026040001";
- var success = addCard(token, newCard, "month", 2, "²âÊÔ¿¨ÃÜ");
- if (success) {
- printl("✓ п¨ÃÜ´´½¨³É¹¦£º" + newCard);
- } else {
- printl("✗ п¨ÃÜ´´½¨Ê§°Ü");
- }
-
- // ²½Öè 3: ²éѯ¿¨ÃÜÐÅÏ¢
- var cardInfo = getCardInfo(token, newCard);
- if (cardInfo) {
- printl("✓ ¿¨ÃÜÐÅÏ¢²éѯ³É¹¦");
- }
-
- // ²½Öè 4: ²éѯÉ豸Áбí
- var devices = getCardDevices(token, newCard);
- if (devices !== null) {
- printl("✓ É豸Áбí²éѯ³É¹¦");
- }
-
- // ²½Öè 5: Ðø·Ñ¿¨ÃÜ
- var renewSuccess = renewCard(token, newCard, "quarter", 3, "Ðø·ÑΪ¼¾¿¨");
- if (renewSuccess) {
- printl("✓ ¿¨ÃÜÐø·Ñ³É¹¦");
- }
-
- // ²½Öè 6: »»»ú¼¤»îʾÀý
- var currentImei = device.getIMEI();
- var testCard = "t2026040002";
- var activateSuccess = activateNewDevice(testCard, currentImei);
- if (activateSuccess) {
- printl("✓ »»»ú¼¤»î³É¹¦");
- }
-
- printl("========================================");
- printl(" ¹¤×÷Á÷³ÌÑÝʾÍê³É");
- printl("========================================");
- }
- // =============================================================================
- // 9. ʵÓù¤¾ßº¯Êý
- // =============================================================================
- /**
- * ÅúÁ¿´´½¨¿¨ÃÜ
- * @param {String} token ¹ÜÀí token
- * @param {String} prefix ¿¨ÃÜǰ׺
- * @param {Number} count ´´½¨ÊýÁ¿
- * @param {String} cardType ¿¨ÀàÐÍ
- * @param {Number} devices É豸Êý
- */
- function batchCreateCards(token, prefix, count, cardType, devices) {
- printl("=== ÅúÁ¿´´½¨¿¨ÃÜ ===");
- printl("ǰ׺£º" + prefix);
- printl("ÊýÁ¿£º" + count);
- printl("ÀàÐÍ£º" + cardType);
-
- var successCount = 0;
- var failCount = 0;
-
- for (var i = 0; i < count; i++) {
- // Éú³É¿¨ÃÜ£ºÇ°×º + ʱ¼ä´Áºó 6 λ
- var timestamp = new Date().getTime().toString().substr(-6);
- var cardCode = prefix + timestamp + String(i).padStart(3, '0');
-
- printl("ÕýÔÚ´´½¨µÚ " + (i+1) + " ¸ö¿¨ÃÜ£º" + cardCode);
-
- if (addCard(token, cardCode, cardType, devices, "ÅúÁ¿´´½¨")) {
- successCount++;
- } else {
- failCount++;
- }
-
- // ±ÜÃâÇëÇó¹ý¿ì£¬ÔÝÍ£ 100ms
- sleep(100);
- }
-
- printl("=== ÅúÁ¿´´½¨½á¹û ===");
- printl("³É¹¦£º" + successCount + " ¸ö");
- printl("ʧ°Ü£º" + failCount + " ¸ö");
- }
- /**
- * ¼ì²é¿¨ÃÜ״̬
- * @param {String} token ¹ÜÀí token
- * @param {String} card ¿¨ÃÜ
- * @returns {Object} ¿¨ÃÜ״̬ÐÅÏ¢
- */
- function checkCardStatus(token, card) {
- var info = getCardInfo(token, card);
-
- if (!info) {
- return {
- valid: false,
- message: "¿¨Ãܲ»´æÔÚ»ò²éѯʧ°Ü"
- };
- }
-
- // ¸ù¾Ýʵ¼ÊÏìÓ¦½á¹¹µ÷ÕûÅжÏÂß¼
- return {
- valid: true,
- info: info,
- message: "¿¨ÃÜÓÐЧ"
- };
- }
- // =============================================================================
- // 10. JavaScript ±äÁ¿×ÛºÏʾÀý£¨»ùÓÚÎĵµËµÃ÷£©
- // =============================================================================
- /**
- * JavaScript ±äÁ¿»ù´¡Ê¾Àý - Ñϸñ°´ÕÕÎĵµËµÃ÷
- * ÑÝʾ±äÁ¿µÄ»ù±¾¸ÅÄî¡¢ÉùÃ÷¡¢¸³ÖµºÍʹÓÃ
- */
- function variableBasicsExample() {
- printl("========================================");
- printl(" JavaScript ±äÁ¿»ù´¡Ê¾Àý");
- printl("========================================");
-
- // 1. »ù±¾±äÁ¿ÉùÃ÷ºÍËãÊõÔËË㣨ÎĵµµÚ3-11ÐУ©
- var x = 5;
- var y = 6;
- var z = x + y;
- printl("¡¾»ù±¾±äÁ¿¡¿x=" + x + ", y=" + y + ", z=x+y=" + z);
- printl("˵Ã÷£º±äÁ¿¾ÍÏñ´úÊýÖеÄ×Öĸ£¬ÓÃÓÚ´æ´¢Êý¾Ý");
-
- // 2. ±äÁ¿ÃüÃû¹æÔò£¨ÎĵµµÚ13-19ÐУ©
- var age = 25; // ÃèÊöÐÔÃû³Æ
- var sum = 100; // ÃèÊöÐÔÃû³Æ
- var totalVolume = 500; // ÍÕ·åÃüÃû
- var _private = "˽ÓÐ"; // Ï»®Ïß¿ªÍ·£¨²»ÍƼö£©
- var $special = "ÌØÊâ"; // $¿ªÍ·£¨²»ÍƼö£©
- printl("¡¾±äÁ¿ÃüÃû¡¿age=" + age + ", sum=" + sum + ", totalVolume=" + totalVolume);
- printl("×¢Ò⣺±äÁ¿ÃûÇø·Ö´óСд£¬y ºÍ Y ÊDz»Í¬µÄ±äÁ¿");
-
- // 3. Êý¾ÝÀàÐÍ - Êý×ÖºÍ×Ö·û´®£¨ÎĵµµÚ21-30ÐУ©
- var pi = 3.14; // ÊýÖµ£¬²»ÓÃÒýºÅ
- var person = "John Doe"; // ×Ö·û´®£¬ÓÃË«ÒýºÅ
- var answer = 'Yes I am!'; // ×Ö·û´®£¬Óõ¥ÒýºÅ
- var wrongNumber = "100"; // ÕâÊÇ×Ö·û´®£¬²»ÊÇÊý×Ö£¡
- printl("¡¾Êý¾ÝÀàÐÍ¡¿");
- printl("ÊýÖµ pi=" + pi + " (ÀàÐÍ: " + typeof pi + ")");
- printl("×Ö·û´® person=" + person + " (ÀàÐÍ: " + typeof person + ")");
- printl("×Ö·û´®ÐÎʽµÄÊý×Ö wrongNumber=" + wrongNumber + " (ÀàÐÍ: " + typeof wrongNumber + ")");
-
- // 4. ³£Á¿ÉùÃ÷£¨ÎĵµµÚ27-28ÐУ©
- const PI_CONSTANT = 3.141592653589793;
- printl("¡¾³£Á¿¡¿PI_CONSTANT=" + PI_CONSTANT);
- printl("˵Ã÷£ºconst ±íʾ³£Á¿£¬Öµ²»ÄÜÐÞ¸Ä");
-
- // 5. ÉùÃ÷±äÁ¿µ«²»¸³Öµ£¨ÎĵµµÚ32-40ÐУ©
- var carname; // ÉùÃ÷µ«Î´¸³Öµ
- printl("¡¾Î´³õʼ»¯±äÁ¿¡¿carname=" + carname + " (ֵΪ undefined)");
- carname = "Volvo"; // ºóÐø¸³Öµ
- printl("¸³Öµºó carname=" + carname);
-
- // 6. Ò»ÌõÓï¾äÉùÃ÷¶à¸ö±äÁ¿£¨ÎĵµµÚ42-48ÐУ©
- var lastname = "Doe", age2 = 30, job = "carpenter";
- printl("¡¾¶à±äÁ¿ÉùÃ÷¡¿lastname=" + lastname + ", age=" + age2 + ", job=" + job);
-
- var a, b, c = 1;
- printl("²¿·Ö³õʼ»¯£ºa=" + a + " (undefined), b=" + b + " (undefined), c=" + c);
- }
- /**
- * ±äÁ¿×÷ÓÃÓòʾÀý - È«¾Ö±äÁ¿ºÍ¾Ö²¿±äÁ¿£¨ÎĵµµÚ62-76ÐУ©
- */
- function variableScopeExample() {
- printl("========================================");
- printl(" ±äÁ¿×÷ÓÃÓòʾÀý");
- printl("========================================");
-
- // È«¾Ö±äÁ¿£¨ÎĵµµÚ62-67ÐУ©
- var carName = "Volvo";
- printl("¡¾È«¾Ö±äÁ¿¡¿ÔÚº¯ÊýÍâÉùÃ÷: carName=" + carName);
-
- function myFunction() {
- // ÕâÀï¿ÉÒÔʹÓÃÈ«¾Ö±äÁ¿ carName
- printl(" º¯ÊýÄÚ²¿·ÃÎÊÈ«¾Ö±äÁ¿: carName=" + carName);
-
- // ¾Ö²¿±äÁ¿£¨ÎĵµµÚ70-76ÐУ©
- var localCarName = "BMW";
- printl(" º¯ÊýÄÚ²¿ÉùÃ÷¾Ö²¿±äÁ¿: localCarName=" + localCarName);
- }
-
- myFunction();
- printl("¡¾×¢Òâ¡¿ÔÚº¯ÊýÍâÎÞ·¨·ÃÎʾֲ¿±äÁ¿ localCarName");
-
- // ÑÝʾȫ¾Ö±äÁ¿¿ÉÒÔÔÚÈκεط½Ê¹ÓÃ
- printl("º¯ÊýÖ´ÐкóÈÔ¿É·ÃÎÊÈ«¾Ö±äÁ¿: carName=" + carName);
- }
- /**
- * ¿é¼¶×÷ÓÃÓòʾÀý - let ºÍ const£¨ÎĵµµÚ79-107ÐУ©
- */
- function blockScopeExample() {
- printl("========================================");
- printl(" ¿é¼¶×÷ÓÃÓòʾÀý (let/const)");
- printl("========================================");
-
- // 1. var ²»¾ß±¸¿é¼¶×÷ÓÃÓò£¨ÎĵµµÚ80-81ÐУ©
- printl("¡¾var µÄ×÷ÓÃÓò¡¿");
- {
- var x = 2;
- printl(" ÔÚ´úÂë¿éÄÚÉùÃ÷ var x=" + x);
- }
- printl(" ÔÚ´úÂë¿éÍâÈÔ¿É·ÃÎÊ: x=" + x + " (var ûÓп鼶×÷ÓÃÓò)");
-
- // 2. let ¾ß±¸¿é¼¶×÷ÓÃÓò£¨ÎĵµµÚ83-85ÐУ©
- printl("¡¾let µÄ×÷ÓÃÓò¡¿");
- {
- let y = 3;
- printl(" ÔÚ´úÂë¿éÄÚÉùÃ÷ let y=" + y);
- }
- printl(" ÔÚ´úÂë¿éÍâÎÞ·¨·ÃÎÊ let y (»á±¨´í)");
-
- // 3. ÖØÐ¶¨Òå±äÁ¿µÄ¶Ô±È£¨ÎĵµµÚ87-99ÐУ©
- printl("¡¾ÖØÐ¶¨Òå±äÁ¿¶Ô±È¡¿");
- var a = 10;
- printl(" var a=10 (Íⲿ)");
- {
- var a = 2; // Õâ»á¸²¸ÇÍⲿµÄ a
- printl(" var a=2 (ÄÚ²¿¿é)");
- }
- printl(" ¿éÖ´Ðкó a=" + a + " (±»ÄÚ²¿¸²¸ÇÁË)");
-
- var b = 10;
- printl(" var b=10 (Íⲿ)");
- {
- let b = 2; // ÕâÊÇеĿ鼶±äÁ¿£¬²»Ó°ÏìÍⲿ
- printl(" let b=2 (ÄÚ²¿¿é)");
- }
- printl(" ¿éÖ´Ðкó b=" + b + " (±£³ÖÔÖµ£¬Î´±»Ó°Ïì)");
-
- // 4. Ñ»·ÖеÄ×÷ÓÃÓò£¨ÎĵµµÚ101-107ÐУ©
- printl("¡¾Ñ»·ÖеÄ×÷ÓÃÓò¡¿");
- var i = 5;
- for (var i = 0; i < 3; i++) {
- // Ñ»·ÖÐʹÓà var
- }
- printl(" ʹÓà var: Ñ»·ºó i=" + i + " (Ñ»·Ó°ÏìÁËÍⲿ±äÁ¿)");
-
- var j = 5;
- for (let j = 0; j < 3; j++) {
- // Ñ»·ÖÐʹÓà let
- }
- printl(" ʹÓà let: Ñ»·ºó j=" + j + " (Íⲿ±äÁ¿Î´ÊÜÓ°Ïì)");
- }
- /**
- * ±äÁ¿ÖØÐÂÉùÃ÷ºÍÖØÖÃʾÀý£¨ÎĵµµÚ109-147ÐУ©
- */
- function variableRedeclarationExample() {
- printl("========================================");
- printl(" ±äÁ¿ÖØÐÂÉùÃ÷ºÍÖØÖÃ");
- printl("========================================");
-
- // 1. ¾Ö²¿±äÁ¿£ºvar ºÍ let ÀàËÆ£¨ÎĵµµÚ109-115ÐУ©
- printl("¡¾º¯ÊýÄڵľֲ¿±äÁ¿¡¿");
- function testVar() {
- var carName = "Volvo";
- printl(" var ÉùÃ÷: carName=" + carName);
- }
- function testLet() {
- let carName = "Volvo";
- printl(" let ÉùÃ÷: carName=" + carName);
- }
- testVar();
- testLet();
- printl(" Á½ÕßÔÚº¯ÊýÄÚ¶¼ÊǾֲ¿×÷ÓÃÓò");
-
- // 2. È«¾Ö±äÁ¿£ºvar ºÍ let ÀàËÆ£¨ÎĵµµÚ117-123ÐУ©
- printl("¡¾È«¾Ö±äÁ¿¡¿");
- var globalX = 2;
- let globalY = 2;
- printl(" var globalX=" + globalX + " (È«¾Ö×÷ÓÃÓò)");
- printl(" let globalY=" + globalY + " (È«¾Ö×÷ÓÃÓò)");
-
- // 3. ÖØÖñäÁ¿£¨ÎĵµµÚ124-147ÐУ©
- printl("¡¾±äÁ¿ÖØÖùæÔò¡¿");
-
- // var ¿ÉÒÔ¶à´ÎÉùÃ÷
- var m = 2;
- var m = 3; // ºÏ·¨
- printl(" var m=2; var m=3; ¡ú m=" + m + " (ºÏ·¨)");
-
- // let ²»ÄÜÔÚͬһ×÷ÓÃÓòÖØ¸´ÉùÃ÷
- var n = 2;
- // let n = 3; // ²»ºÏ·¨£¡»á±¨´í
- printl(" var n=2; let n=3; ¡ú ²»ºÏ·¨(ͬһ×÷ÓÃÓò)");
-
- // ÔÚ²»Í¬¿éÖпÉÒÔ
- let p = 2;
- printl(" let p=2 (Íⲿ)");
- {
- let p = 3; // ºÏ·¨£¬²»Í¬¿é
- printl(" { let p=3 } (ÄÚ²¿¿é£¬ºÏ·¨)");
- }
- printl(" Íⲿ p=" + p + " (δ±»Ó°Ïì)");
-
- // let ºÍ var ²»ÄÜ»ìÓÃ
- let q = 2;
- // var q = 3; // ²»ºÏ·¨
- printl(" let q=2; var q=3; ¡ú ²»ºÏ·¨(ͬһ×÷ÓÃÓò)");
- }
- /**
- * const ¹Ø¼ü×ÖÏê½â£¨ÎĵµµÚ155-214ÐУ©
- */
- function constKeywordExample() {
- printl("========================================");
- printl(" const ¹Ø¼ü×ÖÏê½â");
- printl("========================================");
-
- // 1. const ±ØÐë³õʼ»¯£¨ÎĵµµÚ156-171ÐУ©
- printl("¡¾const »ù±¾¹æÔò¡¿");
- const PI = 3.141592653589793;
- printl(" const PI=" + PI + " (ÕýÈ·£ºÉùÃ÷ʱ³õʼ»¯)");
-
- // const PI2; // ´íÎó£¡const ±ØÐë³õʼ»¯
- // PI2 = 3.14; // ÕâÑùÒ²²»ÐÐ
- printl(" const PI2; ¡ú ´íÎó(const ±ØÐë³õʼ»¯)");
-
- // 2. const ²»ÄÜÖØÐ¸³Öµ£¨ÎĵµµÚ156-157ÐУ©
- printl("¡¾const ²»¿ÉÖØÐ¸³Öµ¡¿");
- const MAX_VALUE = 100;
- printl(" const MAX_VALUE=" + MAX_VALUE);
- // MAX_VALUE = 200; // ±¨´í£¡
- // MAX_VALUE = MAX_VALUE + 10; // ±¨´í£¡
- printl(" MAX_VALUE=200; ¡ú ±¨´í(const ²»ÄÜÖØÐ¸³Öµ)");
-
- // 3. const ºÍ let µÄÇø±ð£¨ÎĵµµÚ159-164ÐУ©
- printl("¡¾const vs let¡¿");
- printl(" Ïàͬµã£º¶¼Êǿ鼶×÷ÓÃÓò");
- printl(" Ïàͬµã£º¶¼²»ÄܺÍͬ×÷ÓÃÓòÆäËû±äÁ¿Í¬Ãû");
- printl(" ²»Í¬µã£ºconst ±ØÐë³õʼ»¯£¬let ²»ÓÃ");
- printl(" ²»Í¬µã£ºconst ²»ÄÜÖØÐ¸³Öµ£¬let ¿ÉÒÔ");
-
- // 4. const ²¢·ÇÕæÕýµÄ³£Á¿ - ¶ÔÏóºÍÊý×é¿É±ä£¨ÎĵµµÚ173-188ÐУ©
- printl("¡¾const µÄ±¾ÖÊ£º³£Á¿ÒýÓ㬷dz£Á¿Öµ¡¿");
-
- // ¶ÔÏóʾÀý
- const car = {type:"Fiat", model:"500", color:"white"};
- printl(" const car = " + JSON.stringify(car));
- car.color = "red"; // ¿ÉÒÔÐÞ¸ÄÊôÐÔ
- car.owner = "Johnson"; // ¿ÉÒÔÌí¼ÓÊôÐÔ
- printl(" Ð޸ĺó: " + JSON.stringify(car));
- printl(" ˵Ã÷£º¿ÉÒÔÐ޸ĶÔÏóµÄÊôÐÔºÍÌí¼ÓÐÂÊôÐÔ");
-
- // const car2 = {type:"Volvo"}; // ´íÎ󣡲»ÄÜÖØÐ¸³ÖµÕû¸ö¶ÔÏó
- printl(" car={type:'Volvo'}; ¡ú ±¨´í(²»ÄÜÖØÐ¸³Öµ)");
-
- // Êý×éʾÀý
- const cars = ["Saab", "Volvo", "BMW"];
- printl(" const cars = " + JSON.stringify(cars));
- cars[0] = "Toyota"; // ¿ÉÒÔÐÞ¸ÄÔªËØ
- cars.push("Audi"); // ¿ÉÒÔÌí¼ÓÔªËØ
- printl(" Ð޸ĺó: " + JSON.stringify(cars));
- printl(" ˵Ã÷£º¿ÉÒÔÐÞ¸ÄÊý×éÔªËØºÍÌí¼ÓÐÂÔªËØ");
-
- // const cars2 = ["Toyota", "Volvo"]; // ´íÎ󣡲»ÄÜÖØÐ¸³ÖµÕû¸öÊý×é
- printl(" cars=['Toyota','Volvo']; ¡ú ±¨´í(²»ÄÜÖØÐ¸³Öµ)");
-
- // 5. const µÄÖØÖùæÔò£¨ÎĵµµÚ189-214ÐУ©
- printl("¡¾const ÖØÖùæÔò×ܽ᡿");
- const r = 2;
- printl(" const r=2; (ºÏ·¨)");
- // const r = 3; // ²»ºÏ·¨
- // r = 3; // ²»ºÏ·¨
- // var r = 3; // ²»ºÏ·¨
- // let r = 3; // ²»ºÏ·¨
- printl(" Ö®ºó²»ÄÜÔÙÉùÃ÷»ò¸³Öµ r (ËùÓз½Ê½¶¼²»ºÏ·¨)");
-
- printl(" RhinoÒýÇæËµÃ÷£º");
- printl(" ÔÚAIWROKµÄRhinoÒýÇæÖУ¬constÔÚº¯Êý×÷ÓÃÓòÄÚ²»ÄÜÖØ¸´ÉùÃ÷");
- printl(" ¼´Ê¹ÔÚ²»Í¬¿éÖÐÒ²»á±¨´í£¬ÕâÓë±ê×¼ES6ÐÐΪ²»Í¬");
- printl(" ½¨Ò飺ÔÚRhinoÖбÜÃâÔÚͬһº¯ÊýÄÚ¶à´ÎʹÓÃͬÃûconst");
- }
- /**
- * ±äÁ¿ÌáÉýʾÀý£¨Hoisting£©£¨ÎĵµµÚ149-153ÐУ©
- */
- function hoistingExample() {
- printl("========================================");
- printl(" ±äÁ¿ÌáÉýʾÀý (Hoisting)");
- printl("========================================");
-
- // 1. var ±äÁ¿ÌáÉý£¨ÎĵµµÚ150-151ÐУ©
- printl("¡¾var ±äÁ¿ÌáÉý¡¿");
- printl(" ÔÚÉùÃ÷ǰʹÓà carName: " + carName);
- var carName; // ±äÁ¿»á±»ÌáÉýµ½×÷ÓÃÓò¶¥²¿
- carName = "Volvo";
- printl(" ÉùÃ÷²¢¸³Öµºó: " + carName);
- printl(" ˵Ã÷£ºvar ÉùÃ÷µÄ±äÁ¿»á±»ÌáÉý£¬µ«¸³ÖµÎª undefined");
-
- // 2. let ±äÁ¿²»ÌáÉý£¨ÎĵµµÚ152-153ÐУ©
- printl("¡¾let ±äÁ¿²»ÌáÉý¡¿");
- // printl(" ÔÚÉùÃ÷ǰʹÓà letCar: " + letCar); // ±¨´í£¡
- let letCar = "BMW";
- printl(" ÉùÃ÷ºóʹÓà letCar: " + letCar);
- printl(" ˵Ã÷£ºlet ²»»á±»ÌáÉý£¬ÉùÃ÷ǰʹÓûᱨ´í(ÔÝʱÐÔËÀÇø)");
-
- // 3. ʵ¼ÊÑÝʾ
- printl("¡¾Êµ¼Ê¶Ô±È¡¿");
-
- function testHoisting() {
- printl(" var ²âÊÔ:");
- printl(" ÉùÃ÷ǰ: x=" + x); // undefined
- var x = 5;
- printl(" ÉùÃ÷ºó: x=" + x); // 5
-
- printl(" let ²âÊÔ:");
- // printl(" ÉùÃ÷ǰ: y=" + y); // ±¨´í£¡
- let y = 10;
- printl(" ÉùÃ÷ºó: y=" + y); // 10
- }
-
- testHoisting();
- }
- /**
- * ʵ¼ÊÓ¦ÓÃʾÀý - ×ÛºÏʹÓø÷ÖÖ±äÁ¿ÀàÐÍ
- */
- function practicalVariableUsage() {
- printl("========================================");
- printl(" ʵ¼ÊÓ¦Óà - ×ÛºÏʾÀý");
- printl("========================================");
-
- // ʹÓà const ¶¨ÒåÅäÖó£Á¿
- const CONFIG = {
- appName: "AIWROK",
- version: "1.0.0",
- maxRetries: 3
- };
- printl("¡¾Ó¦ÓÃÅäÖá¿");
- printl(" Ó¦ÓÃÃû: " + CONFIG.appName);
- printl(" °æ±¾: " + CONFIG.version);
- printl(" ×î´óÖØÊÔ: " + CONFIG.maxRetries);
-
- // ʹÓà let ¶¨Òå¿É±ä״̬
- let retryCount = 0;
- let isConnected = false;
- printl("¡¾ÔËÐÐʱ״̬¡¿");
- printl(" ÖØÊÔ´ÎÊý: " + retryCount);
- printl(" Á¬½Ó״̬: " + isConnected);
-
- // Ä£Äâ״̬±ä»¯
- isConnected = true;
- retryCount = 1;
- printl(" ״̬¸üкó:");
- printl(" ÖØÊÔ´ÎÊý: " + retryCount);
- printl(" Á¬½Ó״̬: " + isConnected);
-
- // ʹÓà var ¶¨ÒåÁÙʱ±äÁ¿
- var tempResult = 10 + 20;
- printl("¡¾ÁÙʱ¼ÆËã¡¿");
- printl(" 10 + 20 = " + tempResult);
-
- // ʵ¼ÊÓ¦Óó¡¾°£º¿¨ÃܹÜÀíϵͳÖеıäÁ¿Ê¹ÓÃ
- printl("¡¾¿¨ÃÜϵͳʾÀý¡¿");
- const CARD_RULES = {
- minLength: 5,
- mustStartWithLetter: true,
- validTypes: ["day", "month", "quarter", "halfYear", "year"]
- };
-
- var cardCode = "t2026040001";
- var cardType = "month";
- var devices = 2;
-
- printl(" ¿¨ÃÜ: " + cardCode);
- printl(" ÀàÐÍ: " + cardType);
- printl(" É豸Êý: " + devices);
- printl(" ¹æÔò: ×îС³¤¶È" + CARD_RULES.minLength + "룬±ØÐë×Öĸ¿ªÍ·");
- }
- /**
- * ¸ß¼¶±äÁ¿Ä£Ê½ - ±Õ°üºÍÊý¾Ý·â×°
- */
- function advancedVariablePatterns() {
- printl("========================================");
- printl(" ¸ß¼¶±äÁ¿Ä£Ê½ - ±Õ°ü");
- printl("========================================");
-
- // ʹÓñհü´´½¨Ë½ÓбäÁ¿
- printl("¡¾¼ÆÊýÆ÷Ä£¿é - ʹÓñհü¡¿");
- var counter = (function() {
- var privateCount = 0; // ˽ÓбäÁ¿£¬ÍⲿÎÞ·¨Ö±½Ó·ÃÎÊ
-
- return {
- increment: function() {
- privateCount++;
- return privateCount;
- },
- decrement: function() {
- privateCount--;
- return privateCount;
- },
- getCount: function() {
- return privateCount;
- }
- };
- })();
-
- printl(" ³õʼֵ: " + counter.getCount());
- printl(" µÝÔöºó: " + counter.increment());
- printl(" ÔÙµÝÔö: " + counter.increment());
- printl(" µÝ¼õºó: " + counter.decrement());
- printl(" ˵Ã÷£ºprivateCount ÊÇ˽ÓбäÁ¿£¬Ö»ÄÜͨ¹ý·½·¨·ÃÎÊ");
-
- // ¹¤³§º¯Êýģʽ
- printl("¡¾¹¤³§º¯Êý - ´´½¨Óû§¶ÔÏó¡¿");
- function createUser(name, age) {
- var privateAge = age; // ˽ÓбäÁ¿
-
- return {
- getName: function() {
- return name;
- },
- getAge: function() {
- return privateAge;
- },
- celebrateBirthday: function() {
- privateAge++;
- printl(" " + name + " ¹ýÉúÈÕÁË£¡ÏÖÔÚ " + privateAge + " Ëê");
- }
- };
- }
-
- var user1 = createUser("Alice", 25);
- var user2 = createUser("Bob", 30);
-
- printl(" " + user1.getName() + " µÄÄêÁä: " + user1.getAge());
- printl(" " + user2.getName() + " µÄÄêÁä: " + user2.getAge());
-
- user1.celebrateBirthday();
- printl(" " + user1.getName() + " µÄÐÂÄêÁä: " + user1.getAge());
- printl(" ˵Ã÷£ºÃ¿¸öÓû§ÊµÀý¶¼ÓжÀÁ¢µÄ˽ÓбäÁ¿");
-
- // Ä£¿éģʽ
- printl("¡¾Ä£¿éģʽ - ×éÖ¯´úÂë¡¿");
- var MathHelper = (function() {
- const PI = 3.141592653589793; // ³£Á¿
-
- return {
- add: function(a, b) {
- return a + b;
- },
- multiply: function(a, b) {
- return a * b;
- },
- circleArea: function(radius) {
- return PI * radius * radius;
- }
- };
- })();
-
- printl(" ¼Ó·¨: 5 + 3 = " + MathHelper.add(5, 3));
- printl(" ³Ë·¨: 4 ¡Á 6 = " + MathHelper.multiply(4, 6));
- printl(" Ô²Ãæ»ý(r=5): " + MathHelper.circleArea(5).toFixed(2));
- printl(" ˵Ã÷£ºPI ÊÇÄ£¿éÄÚ²¿µÄ³£Á¿£¬ÍⲿÎÞ·¨ÐÞ¸Ä");
- }
- /**
- * ÔËÐÐËùÓбäÁ¿Ê¾Àý
- */
- function runAllVariableExamples() {
- printl("########################################");
- printl("# JavaScript ±äÁ¿×ÛºÏʾÀý´óÈ« #");
- printl("########################################");
-
- // ÒÀ´ÎÔËÐи÷¸öʾÀýº¯Êý£¬Ã¿¸öʾÀýÖ®¼ä¼ä¸ô2Ãë
- variableBasicsExample();
- sleep.second(2); // ÔÝÍ£2Ãë
-
- variableScopeExample();
- sleep.second(2); // ÔÝÍ£2Ãë
-
- blockScopeExample();
- sleep.second(2); // ÔÝÍ£2Ãë
-
- variableRedeclarationExample();
- sleep.second(2); // ÔÝÍ£2Ãë
-
- constKeywordExample();
- sleep.second(2); // ÔÝÍ£2Ãë
-
- hoistingExample();
- sleep.second(2); // ÔÝÍ£2Ãë
-
- practicalVariableUsage();
- sleep.second(2); // ÔÝÍ£2Ãë
-
- advancedVariablePatterns();
-
- printl("########################################");
- printl("# ËùÓбäÁ¿Ê¾ÀýÔËÐÐÍê³É #");
- printl("########################################");
- }
- // =============================================================================
- // 11. Ö÷³ÌÐòÈë¿Ú£¨°üº¬±äÁ¿Ê¾Àý£©
- // =============================================================================
- // ÔËÐÐÍêÕû¹¤×÷Á÷³ÌÑÝʾ
- mainWorkflow();
- // ÔËÐÐ JavaScript ±äÁ¿×ÛºÏʾÀý
- runAllVariableExamples();
- // ʾÀý£ºÅúÁ¿´´½¨¿¨ÃÜ£¨È¡Ïû×¢ÊÍÒÔʹÓã©
- /*
- var token = getToken();
- if (token) {
- batchCreateCards(token, "t2026", 5, "day", 1);
- }
- */
- // ʾÀý£ºµ¥¶Àµ÷ÓÃij¸ö¹¦ÄÜ
- /*
- // »ñÈ¡µ±Ç°É豸 IMEI
- var imei = device.getIMEI();
- printl("µ±Ç°É豸 IMEI: " + imei);
- // »»»ú¼¤»î
- activateNewDevice("t2026040001", imei);
- */
- printl("³ÌÐòÖ´ÐÐÍê±Ï£¡");
¸´ÖÆ´úÂë
|
|