B2B网络软件

标题: 安卓脚本类型判断与Boolean对象综合示例 [打印本页]

作者: YYPOST群发软件    时间: 4 小时前
标题: 安卓脚本类型判断与Boolean对象综合示例
安卓脚本类型判断与Boolean对象综合示例
安卓脚本类型判断与Boolean对象综合示例 B2B网络软件

安卓脚本类型判断与Boolean对象综合示例 B2B网络软件

安卓脚本类型判断与Boolean对象综合示例 B2B网络软件



  1. /**
  2. * JavaScript类型判断与Boolean对象综合示例 - H5日志显示版
  3. * 演示如何在H5界面中实时显示JavaScript类型判断的运行过程
  4. */

  5. // ==========================================
  6. // 第一部分:定义类型判断工具
  7. // ==========================================

  8. var 类型 = {};

  9. /**
  10. * 判断变量数据是什么类型
  11. * @param {任意} use
  12. * @returns {字符串|null} 成功:返回对应类型单词,失败:null
  13. */
  14. 类型.判断类型 = function (use) {
  15.     switch (typeof (use)) {
  16.         case 'undefined':
  17.             return 'undefined';
  18.         case 'number':
  19.             return 'number';
  20.         case 'string':
  21.             return 'string';
  22.         case 'boolean':
  23.             return 'boolean';
  24.         default:
  25.             if (Array.isArray(use)) return 'Array';
  26.             if (Object.prototype.toString.call(use) === '[object Object]') return 'Object';
  27.     }
  28. };

  29. // ==========================================
  30. // 第二部分:H5日志输出函数
  31. // ==========================================



  32. // ==========================================
  33. // 第三部分:Boolean方法综合示例
  34. // ==========================================

  35. /**
  36. * Boolean构造函数引用示例
  37. */
  38. function booleanConstructor示例() {
  39.     console.log('=== Boolean构造函数引用示例 ===');
  40.    
  41.     var myBool = new Boolean(true);
  42.     console.log('创建布尔对象: new Boolean(true)');
  43.     console.log('构造函数引用: ' + myBool.constructor);
  44.     console.log('构造函数检查: ' + (myBool.constructor === Boolean));
  45.     console.log('');
  46. }

  47. /**
  48. * Boolean转字符串示例
  49. */
  50. function booleanToString示例() {
  51.     console.log('=== Boolean转字符串示例 ===');
  52.    
  53.     var boolTrue = new Boolean(true);
  54.     var boolFalse = new Boolean(false);
  55.    
  56.     var strTrue = boolTrue.toString();
  57.     var strFalse = boolFalse.toString();
  58.    
  59.     console.log('true 转换为字符串: "' + strTrue + '"');
  60.     console.log('false 转换为字符串: "' + strFalse + '"');
  61.    
  62.     var boolNum = new Boolean(1);
  63.     var boolStr = new Boolean("");
  64.    
  65.     console.log('Boolean(1) 转换为字符串: "' + boolNum.toString() + '"');
  66.     console.log('Boolean("") 转换为字符串: "' + boolStr.toString() + '"');
  67.     console.log('');
  68. }

  69. /**
  70. * Boolean.valueOf获取原始值示例
  71. */
  72. function booleanValueOf示例() {
  73.     console.log('=== Boolean.valueOf获取原始值示例 ===');
  74.    
  75.     var testCases = [
  76.         { value: 1, desc: '数字1' },
  77.         { value: 0, desc: '数字0' },
  78.         { value: null, desc: 'null' },
  79.         { value: undefined, desc: 'undefined' },
  80.         { value: "hello", desc: '非空字符串"hello"' },
  81.         { value: "", desc: '空字符串""' }
  82.     ];
  83.    
  84.     for (var i = 0; i < testCases.length; i++) {
  85.         var testCase = testCases[i];
  86.         var boolObj = new Boolean(testCase.value);
  87.         var primitiveValue = boolObj.valueOf();
  88.         
  89.         console.log(testCase.desc + ' -> ' + primitiveValue);
  90.     }
  91.     console.log('');
  92. }

  93. /**
  94. * Boolean原型扩展示例
  95. */
  96. function booleanPrototype扩展示例() {
  97.     console.log('=== Boolean原型扩展示例 ===');
  98.    
  99.     // 扩展 Boolean 的原型,添加一个名为 myColor 的方法
  100.     Boolean.prototype.myColor = function () {
  101.         if (this.valueOf() === true) {
  102.             this.color = "green"; // 如果布尔值为 true,设置颜色为绿色
  103.         } else {
  104.             this.color = "red"; // 如果布尔值为 false,设置颜色为红色
  105.         }
  106.     };
  107.    
  108.     var a = new Boolean(1); // 创建时传入 1,相当于 true
  109.     a.myColor(); // 调用 myColor 方法
  110.     var b = a.color; // 结果为 "green"
  111.     console.log('Boolean(1).myColor() -> 颜色: ' + b);
  112.    
  113.     var c = new Boolean(0); // 创建时传入 0,相当于 false
  114.     c.myColor(); // 调用 myColor 方法
  115.     var d = c.color; // 结果为 "red"
  116.     console.log('Boolean(0).myColor() -> 颜色: ' + d);
  117.     console.log('');
  118. }

  119. // ==========================================
  120. // 第四部分:类型判断综合示例
  121. // ==========================================

  122. /**
  123. * 类型判断基础示例
  124. */
  125. function 类型判断基础示例() {
  126.     console.log('=== 类型判断基础示例 ===');
  127.    
  128.     var a; // undefined
  129.     var b = 1223; // number
  130.     var c = 'abcd'; // string
  131.     var d = true; // boolean
  132.     var e = [1, 2, 3]; // Array
  133.     var f = {a: 10, b: 20}; // Object
  134.    
  135.     console.log('变量 a (未定义): ' + 类型.判断类型(a));
  136.     console.log('变量 b (1223): ' + 类型.判断类型(b));
  137.     console.log('变量 c ("abcd"): ' + 类型.判断类型(c));
  138.     console.log('变量 d (true): ' + 类型.判断类型(d));
  139.     console.log('变量 e ([1,2,3]): ' + 类型.判断类型(e));
  140.     console.log('变量 f ({a:10,b:20}): ' + 类型.判断类型(f));
  141.     console.log('');
  142. }

  143. /**
  144. * 复杂数据类型判断示例
  145. */
  146. function 复杂类型判断示例() {
  147.     console.log('=== 复杂数据类型判断示例 ===');
  148.    
  149.     var testCases = [
  150.         { value: null, desc: 'null' },
  151.         { value: NaN, desc: 'NaN' },
  152.         { value: Infinity, desc: 'Infinity' },
  153.         { value: [], desc: '空数组[]' },
  154.         { value: {}, desc: '空对象{}' },
  155.         { value: function(){}, desc: '函数' },
  156.         { value: new Date(), desc: 'Date对象' },
  157.         { value: /regex/, desc: '正则表达式' }
  158.     ];
  159.    
  160.     for (var i = 0; i < testCases.length; i++) {
  161.         var testCase = testCases[i];
  162.         var typeResult = 类型.判断类型(testCase.value);
  163.         console.log(testCase.desc + ' -> ' + (typeResult || '未知类型'));
  164.     }
  165.     console.log('');
  166. }

  167. // ==========================================
  168. // 第五部分:综合应用场景
  169. // ==========================================

  170. /**
  171. * 数据验证场景
  172. */
  173. function 数据验证场景() {
  174.     console.log('=== 数据验证场景 ===');
  175.    
  176.     function validateInput(value) {
  177.         var isValid = new Boolean(typeof value === "boolean" && (value === true || value === false));
  178.         
  179.         if (isValid.valueOf()) {
  180.             return "✓ 输入是有效的布尔值";
  181.         } else {
  182.             return "✗ 输入无效,必须是布尔值 (当前类型: " + 类型.判断类型(value) + ")";
  183.         }
  184.     }
  185.    
  186.     console.log(validateInput(true));
  187.     console.log(validateInput(false));
  188.     console.log(validateInput("test"));
  189.     console.log(validateInput(123));
  190.     console.log(validateInput(null));
  191.     console.log('');
  192. }

  193. /**
  194. * 任务管理系统示例
  195. */
  196. function 任务管理系统示例() {
  197.     console.log('=== 任务管理系统示例 ===');
  198.    
  199.     var tasks = [
  200.         { name: '任务1: 学习JavaScript', completed: false },
  201.         { name: '任务2: 理解Boolean对象', completed: true },
  202.         { name: '任务3: 掌握类型判断', completed: true },
  203.         { name: '任务4: H5交互开发', completed: false },
  204.     ];
  205.    
  206.     var completedCount = 0;
  207.     var totalCount = tasks.length;
  208.    
  209.     for (var i = 0; i < tasks.length; i++) {
  210.         var task = tasks[i];
  211.         if (task.completed) {
  212.             console.log('✓ ' + task.name + ' - 已完成');
  213.             completedCount++;
  214.         } else {
  215.             console.log('○ ' + task.name + ' - 尚未完成');
  216.         }
  217.     }
  218.    
  219.     console.log('');
  220.     console.log('进度: ' + completedCount + '/' + totalCount + ' 任务完成');
  221.     console.log('完成率: ' + ((completedCount / totalCount) * 100).toFixed(1) + '%');
  222.     console.log('');
  223. }

  224. /**
  225. * 数组过滤示例
  226. */
  227. function 数组过滤示例() {
  228.     console.log('=== 数组过滤示例 ===');
  229.    
  230.     var items = [1, 2, null, 4, undefined, 6, "text", true, false, 0];
  231.    
  232.     console.log('原始数组: [' + items.join(', ') + ']');
  233.    
  234.     // 过滤出有效数字
  235.     var validNumbers = [];
  236.     for (var i = 0; i < items.length; i++) {
  237.         var item = items[i];
  238.         var isValidNumber = new Boolean(item !== null && item !== undefined && typeof item === 'number').valueOf();
  239.         if (isValidNumber) {
  240.             validNumbers.push(item);
  241.         }
  242.     }
  243.    
  244.     console.log('有效数字: [' + validNumbers.join(', ') + ']');
  245.     console.log('数量: ' + validNumbers.length + ' 个');
  246.     console.log('');
  247. }

  248. /**
  249. * 条件判断逻辑示例
  250. */
  251. function 条件判断逻辑示例() {
  252.     console.log('=== 条件判断逻辑示例 ===');
  253.    
  254.     var isLoggedIn = new Boolean(false);
  255.     var hasPermission = true;
  256.     var isAdmin = false;
  257.    
  258.     console.log('登录状态: ' + isLoggedIn.valueOf());
  259.     console.log('权限状态: ' + hasPermission);
  260.     console.log('管理员: ' + isAdmin);
  261.    
  262.     if (isLoggedIn.valueOf() && (hasPermission || isAdmin)) {
  263.         console.log('✓ 用户具有访问权限');
  264.     } else {
  265.         console.log('✗ 用户没有访问权限(未登录)');
  266.     }
  267.    
  268.     // 模拟登录
  269.     isLoggedIn = new Boolean(true);
  270.     console.log('\n--- 模拟登录后 ---');
  271.     console.log('登录状态: ' + isLoggedIn.valueOf());
  272.    
  273.     if (isLoggedIn.valueOf() && (hasPermission || isAdmin)) {
  274.         console.log('✓ 用户具有访问权限');
  275.     } else {
  276.         console.log('✗ 用户没有访问权限');
  277.     }
  278.     console.log('');
  279. }

  280. // ==========================================
  281. // 第六部分:主执行函数
  282. // ==========================================

  283. /**
  284. * 延迟执行函数 - 带倒计时显示
  285. * @param {number} seconds - 延迟秒数
  286. */
  287. function 延迟执行(seconds) {
  288.     var remaining = seconds;
  289.     while (remaining > 0) {
  290.         console.log('⏱ 等待 ' + remaining + ' 秒...');
  291.         sleep.millisecond(1000);
  292.         remaining--;
  293.     }
  294. }

  295. /**
  296. * 运行所有示例
  297. */
  298. function 运行所有示例() {
  299.     console.log('╔══════════════════════════════════════╗');
  300.     console.log('   JavaScript类型判断综合示例系统');
  301.     console.log('   开始时间: ' + new Date().toLocaleTimeString());
  302.     console.log('╚══════════════════════════════════════╝');
  303.     console.log('');
  304.    
  305.     // Boolean相关示例
  306.     booleanConstructor示例();
  307.     延迟执行(2);
  308.    
  309.     booleanToString示例();
  310.     延迟执行(2);
  311.    
  312.     booleanValueOf示例();
  313.     延迟执行(2);
  314.    
  315.     booleanPrototype扩展示例();
  316.     延迟执行(2);
  317.    
  318.     // 类型判断示例
  319.     类型判断基础示例();
  320.     延迟执行(2);
  321.    
  322.     复杂类型判断示例();
  323.     延迟执行(2);
  324.    
  325.     // 综合应用场景
  326.     数据验证场景();
  327.     延迟执行(2);
  328.    
  329.     任务管理系统示例();
  330.     延迟执行(2);
  331.    
  332.     数组过滤示例();
  333.     延迟执行(2);
  334.    
  335.     条件判断逻辑示例();
  336.    
  337.     console.log('╔══════════════════════════════════════╗');
  338.     console.log('   所有示例执行完毕');
  339.     console.log('   结束时间: ' + new Date().toLocaleTimeString());
  340.     console.log('╚══════════════════════════════════════╝');
  341. }

  342. // ==========================================
  343. // 主函数入口 - 供start.js调用
  344. // ==========================================

  345. /**
  346. * 主函数入口
  347. */
  348. function main() {
  349.     // 使用try-catch确保错误不会阻塞
  350.     try {
  351.         console.log('╔══════════════════════════════════════╗');
  352.         console.log('   JavaScript类型判断综合示例系统');
  353.         console.log('   开始时间: ' + new Date().toLocaleTimeString());
  354.         console.log('╚══════════════════════════════════════╝');
  355.         console.log('');
  356.         
  357.         // Boolean相关示例
  358.         console.log('=== Boolean构造函数引用示例 ===');
  359.         var myBool = new Boolean(true);
  360.         console.log('创建布尔对象: new Boolean(true)');
  361.         console.log('构造函数检查: ' + (myBool.constructor === Boolean));
  362.         console.log('');
  363.         
  364.         console.log('⏱ 等待 2 秒...');
  365.         sleep.millisecond(2000);
  366.         
  367.         console.log('=== Boolean转字符串示例 ===');
  368.         var boolTrue = new Boolean(true);
  369.         var boolFalse = new Boolean(false);
  370.         console.log('true 转换为字符串: "' + boolTrue.toString() + '"');
  371.         console.log('false 转换为字符串: "' + boolFalse.toString() + '"');
  372.         console.log('');
  373.         
  374.         console.log('⏱ 等待 2 秒...');
  375.         sleep.millisecond(2000);
  376.         
  377.         console.log('=== Boolean.valueOf示例 ===');
  378.         var testCases = [
  379.             { value: 1, desc: '数字1' },
  380.             { value: 0, desc: '数字0' },
  381.             { value: null, desc: 'null' },
  382.             { value: undefined, desc: 'undefined' }
  383.         ];
  384.         for (var i = 0; i < testCases.length; i++) {
  385.             var testCase = testCases[i];
  386.             var boolObj = new Boolean(testCase.value);
  387.             console.log(testCase.desc + ' -> ' + boolObj.valueOf());
  388.         }
  389.         console.log('');
  390.         
  391.         console.log('⏱ 等待 2 秒...');
  392.         sleep.millisecond(2000);
  393.         
  394.         console.log('=== Boolean原型扩展示例 ===');
  395.         Boolean.prototype.myColor = function () {
  396.             return this.valueOf() === true ? "green" : "red";
  397.         };
  398.         var a = new Boolean(1);
  399.         console.log('Boolean(1).myColor() -> ' + a.myColor());
  400.         var c = new Boolean(0);
  401.         console.log('Boolean(0).myColor() -> ' + c.myColor());
  402.         console.log('');
  403.         
  404.         console.log('⏱ 等待 2 秒...');
  405.         sleep.millisecond(2000);
  406.         
  407.         // 类型判断示例
  408.         console.log('=== 类型判断基础示例 ===');
  409.         var testA; // undefined
  410.         var testB = 1223; // number
  411.         var testC = 'abcd'; // string
  412.         var testD = true; // boolean
  413.         var testE = [1, 2, 3]; // Array
  414.         var testF = {a: 10, b: 20}; // Object
  415.         
  416.         console.log('变量 a (未定义): ' + 类型.判断类型(testA));
  417.         console.log('变量 b (1223): ' + 类型.判断类型(testB));
  418.         console.log('变量 c ("abcd"): ' + 类型.判断类型(testC));
  419.         console.log('变量 d (true): ' + 类型.判断类型(testD));
  420.         console.log('变量 e ([1,2,3]): ' + 类型.判断类型(testE));
  421.         console.log('变量 f ({a:10,b:20}): ' + 类型.判断类型(testF));
  422.         console.log('');
  423.         
  424.         console.log('⏱ 等待 2 秒...');
  425.         sleep.millisecond(2000);
  426.         
  427.         console.log('=== 复杂类型判断示例 ===');
  428.         var complexCases = [
  429.             { value: null, desc: 'null' },
  430.             { value: NaN, desc: 'NaN' },
  431.             { value: Infinity, desc: 'Infinity' },
  432.             { value: [], desc: '空数组[]' },
  433.             { value: {}, desc: '空对象{}' }
  434.         ];
  435.         for (var j = 0; j < complexCases.length; j++) {
  436.             var complexCase = complexCases[j];
  437.             var typeResult = 类型.判断类型(complexCase.value);
  438.             console.log(complexCase.desc + ' -> ' + (typeResult || '未知类型'));
  439.         }
  440.         console.log('');
  441.         
  442.         console.log('⏱ 等待 2 秒...');
  443.         sleep.millisecond(2000);
  444.         
  445.         // 综合应用场景
  446.         console.log('=== 数据验证场景 ===');
  447.         function validateInput(value) {
  448.             var isValid = typeof value === "boolean";
  449.             return isValid ? "✓ 有效的布尔值" : "✗ 无效 (当前类型: " + 类型.判断类型(value) + ")";
  450.         }
  451.         console.log(validateInput(true));
  452.         console.log(validateInput(false));
  453.         console.log(validateInput("test"));
  454.         console.log(validateInput(123));
  455.         console.log('');
  456.         
  457.         console.log('⏱ 等待 2 秒...');
  458.         sleep.millisecond(2000);
  459.         
  460.         console.log('=== 任务管理系统示例 ===');
  461.         var tasks = [
  462.             { name: '任务1: 学习JavaScript', completed: false },
  463.             { name: '任务2: 理解Boolean对象', completed: true },
  464.             { name: '任务3: 掌握类型判断', completed: true }
  465.         ];
  466.         var completedCount = 0;
  467.         for (var k = 0; k < tasks.length; k++) {
  468.             var task = tasks[k];
  469.             if (task.completed) {
  470.                 console.log('✓ ' + task.name + ' - 已完成');
  471.                 completedCount++;
  472.             } else {
  473.                 console.log('○ ' + task.name + ' - 尚未完成');
  474.             }
  475.         }
  476.         console.log('进度: ' + completedCount + '/' + tasks.length + ' 任务完成');
  477.         console.log('');
  478.         
  479.         console.log('⏱ 等待 2 秒...');
  480.         sleep.millisecond(2000);
  481.         
  482.         console.log('=== 数组过滤示例 ===');
  483.         var items = [1, 2, null, 4, undefined, 6, "text"];
  484.         console.log('原始数组: [' + items.join(', ') + ']');
  485.         var validNumbers = [];
  486.         for (var m = 0; m < items.length; m++) {
  487.             var item = items[m];
  488.             if (item !== null && item !== undefined && typeof item === 'number') {
  489.                 validNumbers.push(item);
  490.             }
  491.         }
  492.         console.log('有效数字: [' + validNumbers.join(', ') + ']');
  493.         console.log('');
  494.         
  495.         console.log('⏱ 等待 2 秒...');
  496.         sleep.millisecond(2000);
  497.         
  498.         console.log('=== 条件判断逻辑示例 ===');
  499.         var isLoggedIn = false;
  500.         var hasPermission = true;
  501.         console.log('登录状态: ' + isLoggedIn);
  502.         console.log('权限状态: ' + hasPermission);
  503.         if (isLoggedIn && hasPermission) {
  504.             console.log('✓ 用户具有访问权限');
  505.         } else {
  506.             console.log('✗ 用户没有访问权限(未登录)');
  507.         }
  508.         console.log('');
  509.         
  510.         console.log('╔══════════════════════════════════════╗');
  511.         console.log('   所有示例执行完毕');
  512.         console.log('   结束时间: ' + new Date().toLocaleTimeString());
  513.         console.log('╚══════════════════════════════════════╝');
  514.     } catch(e) {
  515.         // 错误处理 - 优先使用ERR
  516.         if (typeof LogManagerH5 !== 'undefined' && typeof LogManagerH5.ERR === 'function') {
  517.             LogManagerH5.ERR('执行出错: ' + e.message);
  518.         } else if (typeof LogManagerH5 !== 'undefined' && typeof LogManagerH5.error === 'function') {
  519.             LogManagerH5.error('执行出错: ' + e.message);
  520.         }
  521.         if (typeof printl !== 'undefined') {
  522.             printl('错误: ' + e.message);
  523.         }
  524.     }
  525. }

  526. // 只在直接运行时执行,Import时不执行
  527. // 通过检查 global.web1 判断是否通过start.js导入
  528. if (typeof global !== 'undefined' && global.web1) {
  529.     // 通过start.js导入,不自动执行
  530.     console.log('主脚本已加载,等待start.js调用...');
  531. } else {
  532.     // 直接运行此脚本
  533.     if (typeof main === 'function') {
  534.         main();
  535.     }
  536. }
复制代码








欢迎光临 B2B网络软件 (http://bbs.niubt.cn/) Powered by Discuz! X3.2