 | |  |  | AIWROK软件语法运行小示例
- /*
- 本文件展示了 JavaScript 的核心概念和高级用法,适合初学者和进阶开发者学习。
- 🍎交流QQ群711841924群一,苹果内测群,528816639
- 语法运行小示例
- */
- // 日志窗口配置(如需使用请取消注释)
- logWindow.show()
- logWindow.clear()
- logWindow.setHeight(2500)
- logWindow.setWidth(1500)
- logWindow.setNoClickModel()
- var globalCounter = 0;
- function ComplexCalculator() {
- var instanceCounter = 0;
-
- this.add = function(a, b) {
- return a + b;
- };
-
- this.subtract = function(a, b) {
- return a - b;
- };
-
- this.multiply = function(a, b) {
- return a * b;
- };
-
- this.divide = function(a, b) {
- if (b === 0) {
- throw new Error("Division by zero is not allowed");
- }
- return a / b;
- };
-
- this.modulus = function(a, b) {
- if (b === 0) {
- throw new Error("Modulus by zero is not allowed");
- }
- return a % b;
- };
-
- this.getCounter = function() {
- instanceCounter++;
- return instanceCounter;
- };
- }
- var calculator = new ComplexCalculator();
- function processData(inputData) {
- var result = {
- numbers: [],
- strings: [],
- objects: [],
- arrays: [],
- mixed: []
- };
-
- for (var i = 0; i < inputData.length; i++) {
- var item = inputData[i];
-
- if (typeof item === "number") {
- result.numbers.push(item);
- } else if (typeof item === "string") {
- result.strings.push(item);
- } else if (Array.isArray(item)) {
- result.arrays.push(item);
- } else if (typeof item === "object" && item !== null) {
- result.objects.push(item);
- } else {
- result.mixed.push(item);
- }
- }
-
- return result;
- }
- function createPerson(firstName, lastName, age, skills) {
- var person = {
- firstName: firstName,
- lastName: lastName,
- age: age,
- skills: skills || [],
- fullName: function() {
- return this.firstName + " " + this.lastName;
- },
- addSkill: function(skill) {
- this.skills.push(skill);
- return this.skills.length;
- },
- hasSkill: function(skill) {
- for (var i = 0; i < this.skills.length; i++) {
- if (this.skills[i] === skill) {
- return true;
- }
- }
- return false;
- },
- getSkillCount: function() {
- return this.skills.length;
- }
- };
-
- return person;
- }
- function arrayOperations(arr) {
- var operations = {
- sum: 0,
- average: 0,
- max: null,
- min: null,
- reversed: [],
- unique: []
- };
-
- if (arr.length === 0) {
- return operations;
- }
-
- for (var i = 0; i < arr.length; i++) {
- var value = arr[i];
-
- if (typeof value === "number") {
- operations.sum += value;
-
- if (operations.max === null || value > operations.max) {
- operations.max = value;
- }
-
- if (operations.min === null || value < operations.min) {
- operations.min = value;
- }
- }
- }
-
- operations.average = operations.sum / arr.length;
-
- for (var j = arr.length - 1; j >= 0; j--) {
- operations.reversed.push(arr[j]);
- }
-
- var seen = {};
- for (var k = 0; k < arr.length; k++) {
- var item = arr[k];
- var key = String(item);
- if (!seen[key]) {
- seen[key] = true;
- operations.unique.push(item);
- }
- }
-
- return operations;
- }
- function stringManipulator(str) {
- var result = {
- original: str,
- uppercase: null,
- lowercase: null,
- reversed: "",
- words: [],
- characterCount: 0,
- wordCount: 0,
- hasNumbers: false
- };
-
- if (typeof str !== "string") {
- return result;
- }
-
- result.uppercase = str.toUpperCase();
- result.lowercase = str.toLowerCase();
- result.characterCount = str.length;
-
- for (var i = str.length - 1; i >= 0; i--) {
- result.reversed += str[i];
- }
-
- result.words = str.split(" ");
- result.wordCount = result.words.length;
-
- for (var j = 0; j < str.length; j++) {
- var charCode = str.charCodeAt(j);
- if (charCode >= 48 && charCode <= 57) {
- result.hasNumbers = true;
- break;
- }
- }
-
- return result;
- }
- function typeChecker(value) {
- var typeInfo = {
- value: value,
- type: typeof value,
- isNull: false,
- isUndefined: false,
- isArray: false,
- isObject: false,
- isFunction: false,
- isNumber: false,
- isString: false,
- isBoolean: false
- };
-
- if (value === null) {
- typeInfo.isNull = true;
- } else if (value === undefined) {
- typeInfo.isUndefined = true;
- } else if (Array.isArray(value)) {
- typeInfo.isArray = true;
- } else if (typeof value === "object") {
- typeInfo.isObject = true;
- } else if (typeof value === "function") {
- typeInfo.isFunction = true;
- } else if (typeof value === "number") {
- typeInfo.isNumber = true;
- } else if (typeof value === "string") {
- typeInfo.isString = true;
- } else if (typeof value === "boolean") {
- typeInfo.isBoolean = true;
- }
-
- return typeInfo;
- }
- function demonstrateCaseSensitivity() {
- var myVariable = "lowercase";
- var MyVariable = "MixedCase";
- var MYVARIABLE = "UPPERCASE";
-
- var result = {
- myVariable: myVariable,
- MyVariable: MyVariable,
- MYVARIABLE: MYVARIABLE,
- areAllDifferent: (myVariable !== MyVariable && MyVariable !== MYVARIABLE && myVariable !== MYVARIABLE)
- };
-
- return result;
- }
- function controlFlowDemo(score) {
- var grade = "";
- var message = "";
-
- if (score >= 90) {
- grade = "A";
- message = "Excellent performance!";
- } else if (score >= 80) {
- grade = "B";
- message = "Good job!";
- } else if (score >= 70) {
- grade = "C";
- message = "You passed.";
- } else if (score >= 60) {
- grade = "D";
- message = "You barely passed.";
- } else {
- grade = "F";
- message = "You failed.";
- }
-
- var dayOfWeek = "";
- switch (grade) {
- case "A":
- dayOfWeek = "Monday";
- break;
- case "B":
- dayOfWeek = "Tuesday";
- break;
- case "C":
- dayOfWeek = "Wednesday";
- break;
- case "D":
- dayOfWeek = "Thursday";
- break;
- case "F":
- dayOfWeek = "Friday";
- break;
- default:
- dayOfWeek = "Unknown";
- }
-
- return {
- score: score,
- grade: grade,
- message: message,
- dayOfWeek: dayOfWeek
- };
- }
- function loopExamples() {
- var numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
- var sum = 0;
- var evenNumbers = [];
- var oddNumbers = [];
-
- for (var i = 0; i < numbers.length; i++) {
- sum += numbers[i];
-
- if (numbers[i] % 2 === 0) {
- evenNumbers.push(numbers[i]);
- } else {
- oddNumbers.push(numbers[i]);
- }
- }
-
- var factorial = 1;
- var n = 5;
- var counter = 1;
-
- while (counter <= n) {
- factorial *= counter;
- counter++;
- }
-
- var fibonacci = [0, 1];
- var fibLength = 10;
-
- while (fibonacci.length < fibLength) {
- var nextFib = fibonacci[fibonacci.length - 1] + fibonacci[fibonacci.length - 2];
- fibonacci.push(nextFib);
- }
-
- return {
- numbers: numbers,
- sum: sum,
- evenNumbers: evenNumbers,
- oddNumbers: oddNumbers,
- factorial: factorial,
- fibonacci: fibonacci
- };
- }
- function errorHandlingDemo(a, b) {
- var result = {
- success: false,
- value: null,
- error: null
- };
-
- try {
- if (typeof a !== "number" || typeof b !== "number") {
- throw new TypeError("Both arguments must be numbers");
- }
-
- if (b === 0) {
- throw new Error("Cannot divide by zero");
- }
-
- result.value = a / b;
- result.success = true;
-
- } catch (error) {
- result.error = error.message;
- result.success = false;
- }
-
- return result;
- }
- function runAllExamples() {
- print.log("=== JavaScript 综合示例 ===\n");
-
- print.log("1. 计算器示例:");
- print.log("5 + 3 = " + calculator.add(5, 3));
- print.log("10 - 4 = " + calculator.subtract(10, 4));
- print.log("6 * 7 = " + calculator.multiply(6, 7));
- print.log("20 / 4 = " + calculator.divide(20, 4));
- print.log("调用次数: " + calculator.getCounter() + "\n");
-
- print.log("2. 数据处理示例:");
- var mixedData = [42, "Hello", [1, 2, 3], {name: "John"}, true, null, "World", 3.14];
- var processed = processData(mixedData);
- print.log("数字: " + processed.numbers);
- print.log("字符串: " + processed.strings);
- print.log("数组: " + JSON.stringify(processed.arrays));
- print.log("对象: " + JSON.stringify(processed.objects));
- print.log("其他: " + processed.mixed + "\n");
-
- print.log("3. 人员对象示例:");
- var person = createPerson("张", "三", 28, ["JavaScript", "Python"]);
- print.log("全名: " + person.fullName());
- print.log("添加技能前: " + person.skills);
- person.addSkill("Java");
- print.log("添加技能后: " + person.skills);
- print.log("是否有 JavaScript: " + person.hasSkill("JavaScript"));
- print.log("技能数量: " + person.getSkillCount() + "\n");
-
- print.log("4. 数组操作示例:");
- var numbers = [5, 2, 8, 1, 9, 3, 5, 2, 7];
- var arrayOps = arrayOperations(numbers);
- print.log("原数组: " + numbers);
- print.log("总和: " + arrayOps.sum);
- print.log("平均值: " + arrayOps.average);
- print.log("最大值: " + arrayOps.max);
- print.log("最小值: " + arrayOps.min);
- print.log("反转: " + arrayOps.reversed);
- print.log("唯一值: " + arrayOps.unique + "\n");
-
- print.log("5. 字符串操作示例:");
- var strResult = stringManipulator("Hello World 123");
- print.log("原字符串: " + strResult.original);
- print.log("大写: " + strResult.uppercase);
- print.log("小写: " + strResult.lowercase);
- print.log("反转: " + strResult.reversed);
- print.log("单词: " + strResult.words);
- print.log("字符数: " + strResult.characterCount);
- print.log("单词数: " + strResult.wordCount);
- print.log("包含数字: " + strResult.hasNumbers + "\n");
-
- print.log("6. 类型检查示例:");
- var values = [42, "hello", true, null, undefined, [1, 2, 3], {key: "value"}, function() {}];
- for (var i = 0; i < values.length; i++) {
- var typeInfo = typeChecker(values[i]);
- print.log("值: " + JSON.stringify(values[i]) + " | 类型: " + typeInfo.type);
- }
- print.log("");
-
- print.log("7. 大小写敏感示例:");
- var caseDemo = demonstrateCaseSensitivity();
- print.log("myVariable: " + caseDemo.myVariable);
- print.log("MyVariable: " + caseDemo.MyVariable);
- print.log("MYVARIABLE: " + caseDemo.MYVARIABLE);
- print.log("都不同吗? " + caseDemo.areAllDifferent + "\n");
-
- print.log("8. 控制流示例:");
- var controlResult = controlFlowDemo(85);
- print.log("分数: " + controlResult.score);
- print.log("等级: " + controlResult.grade);
- print.log("消息: " + controlResult.message);
- print.log("星期: " + controlResult.dayOfWeek + "\n");
-
- print.log("9. 循环示例:");
- var loopResults = loopExamples();
- print.log("数字: " + loopResults.numbers);
- print.log("总和: " + loopResults.sum);
- print.log("偶数: " + loopResults.evenNumbers);
- print.log("奇数: " + loopResults.oddNumbers);
- print.log("5的阶乘: " + loopResults.factorial);
- print.log("斐波那契数列: " + loopResults.fibonacci + "\n");
-
- print.log("10. 错误处理示例:");
- print.log("10 / 2:");
- var errorResult1 = errorHandlingDemo(10, 2);
- print.log("成功: " + errorResult1.success + ", 结果: " + errorResult1.value);
-
- print.log("10 / 0:");
- var errorResult2 = errorHandlingDemo(10, 0);
- print.log("成功: " + errorResult2.success + ", 错误: " + errorResult2.error);
-
- print.log("'abc' / 2:");
- var errorResult3 = errorHandlingDemo("abc", 2);
- print.log("成功: " + errorResult3.success + ", 错误: " + errorResult3.error);
- }
- runAllExamples();
复制代码
| |  | |  |
|