注册 登录
发贴工具
查看: 4|回复: 0
打印 上一主题 下一主题

[24小时收录超级好的网站] JS巧妙地组合使用各种条件语句

[复制链接]

2445

主题

2493

帖子

1万

积分

积分
14874
跳转到指定楼层
楼主
JS巧妙地组合使用各种条件语句


JS巧妙地组合使用各种条件语句 群发软件发帖工具

  1. /**
  2. * 复杂条件语句示例 - 员工绩效评估和奖金计算系统
  3. * 展示 ES5 兼容的复杂条件逻辑实现
  4. * 适用于 AIWROK IDE 和 Rhino 引擎环境
  5. *🍎交流QQ群711841924群一,苹果内测群,528816639
  6. */

  7. // 员工信息构造函数(ES5 兼容)
  8. function Employee(name, department, position, yearsOfService) {
  9.     this.name = name;
  10.     this.department = department;
  11.     this.position = position;
  12.     this.yearsOfService = yearsOfService;
  13.     this.performanceScore = 0;
  14.     this.bonusRate = 0;
  15.     this.baseSalary = 0;
  16. }

  17. // 绩效评估系统
  18. var PerformanceEvaluator = {
  19.    
  20.     // 计算基础绩效分数
  21.     calculateBaseScore: function(employee) {
  22.         var score = 0;
  23.         
  24.         // 使用 switch 语句根据部门设置基础分数
  25.         switch (employee.department) {
  26.             case "技术部":
  27.                 score = 85;
  28.                 break;
  29.             case "销售部":
  30.                 score = 80;
  31.                 break;
  32.             case "市场部":
  33.                 score = 82;
  34.                 break;
  35.             case "人事部":
  36.                 score = 78;
  37.                 break;
  38.             default:
  39.                 score = 75;
  40.         }
  41.         
  42.         return score;
  43.     },
  44.    
  45.     // 根据职位调整分数
  46.     adjustScoreByPosition: function(baseScore, position) {
  47.         var adjustedScore = baseScore;
  48.         
  49.         // 使用 if...else if...else 进行多条件判断
  50.         if (position === "经理") {
  51.             adjustedScore += 10;
  52.         } else if (position === "主管") {
  53.             adjustedScore += 7;
  54.         } else if (position === "高级工程师") {
  55.             adjustedScore += 5;
  56.         } else if (position === "中级工程师") {
  57.             adjustedScore += 3;
  58.         } else {
  59.             adjustedScore += 1;
  60.         }
  61.         
  62.         return adjustedScore;
  63.     },
  64.    
  65.     // 根据工龄调整分数
  66.     adjustScoreByYears: function(score, years) {
  67.         var finalScore = score;
  68.         
  69.         // 复杂的嵌套条件判断
  70.         if (years >= 10) {
  71.             if (years >= 15) {
  72.                 finalScore += 8;
  73.             } else {
  74.                 finalScore += 6;
  75.             }
  76.         } else if (years >= 5) {
  77.             if (years >= 8) {
  78.                 finalScore += 4;
  79.             } else {
  80.                 finalScore += 2;
  81.             }
  82.         } else if (years >= 2) {
  83.             finalScore += 1;
  84.         }
  85.         
  86.         return finalScore;
  87.     },
  88.    
  89.     // 综合评估员工绩效
  90.     evaluateEmployee: function(employee) {
  91.         var baseScore = this.calculateBaseScore(employee);
  92.         var positionAdjusted = this.adjustScoreByPosition(baseScore, employee.position);
  93.         var finalScore = this.adjustScoreByYears(positionAdjusted, employee.yearsOfService);
  94.         
  95.         // 确保分数在合理范围内
  96.         if (finalScore > 100) {
  97.             finalScore = 100;
  98.         } else if (finalScore < 0) {
  99.             finalScore = 0;
  100.         }
  101.         
  102.         employee.performanceScore = finalScore;
  103.         return finalScore;
  104.     }
  105. };

  106. // 奖金计算系统
  107. var BonusCalculator = {
  108.    
  109.     // 根据绩效分数计算奖金比例
  110.     calculateBonusRate: function(performanceScore) {
  111.         var rate = 0;
  112.         
  113.         // 复杂的条件链
  114.         if (performanceScore >= 95) {
  115.             rate = 0.5;  // 50% 奖金
  116.         } else if (performanceScore >= 90) {
  117.             rate = 0.4;  // 40% 奖金
  118.         } else if (performanceScore >= 85) {
  119.             rate = 0.3;  // 30% 奖金
  120.         } else if (performanceScore >= 80) {
  121.             rate = 0.2;  // 20% 奖金
  122.         } else if (performanceScore >= 75) {
  123.             rate = 0.1;  // 10% 奖金
  124.         } else {
  125.             rate = 0;    // 无奖金
  126.         }
  127.         
  128.         return rate;
  129.     },
  130.    
  131.     // 根据部门调整奖金
  132.     adjustBonusByDepartment: function(baseRate, department) {
  133.         var adjustedRate = baseRate;
  134.         
  135.         // 使用 switch 语句处理部门特殊政策
  136.         switch (department) {
  137.             case "销售部":
  138.                 // 销售部门有额外激励
  139.                 if (baseRate > 0) {
  140.                     adjustedRate += 0.1;
  141.                 }
  142.                 break;
  143.             case "技术部":
  144.                 // 技术部门有项目奖金
  145.                 if (baseRate >= 0.3) {
  146.                     adjustedRate += 0.05;
  147.                 }
  148.                 break;
  149.             case "市场部":
  150.                 // 市场部门有季节性调整
  151.                 var currentMonth = new Date().getMonth();
  152.                 if (currentMonth >= 9 && currentMonth <= 11) { // 第四季度
  153.                     if (baseRate > 0) {
  154.                         adjustedRate += 0.08;
  155.                     }
  156.                 }
  157.                 break;
  158.         }
  159.         
  160.         // 确保奖金比例不超过 60%
  161.         if (adjustedRate > 0.6) {
  162.             adjustedRate = 0.6;
  163.         }
  164.         
  165.         return adjustedRate;
  166.     },
  167.    
  168.     // 计算最终奖金
  169.     calculateBonus: function(employee, baseSalary) {
  170.         var baseRate = this.calculateBonusRate(employee.performanceScore);
  171.         var finalRate = this.adjustBonusByDepartment(baseRate, employee.department);
  172.         
  173.         employee.bonusRate = finalRate;
  174.         employee.baseSalary = baseSalary;
  175.         
  176.         return baseSalary * finalRate;
  177.     }
  178. };

  179. // 员工分类系统
  180. var EmployeeClassifier = {
  181.    
  182.     // 根据绩效和工龄分类员工
  183.     classifyEmployee: function(employee) {
  184.         var classification = "";
  185.         
  186.         // 复杂的嵌套条件判断
  187.         if (employee.performanceScore >= 90) {
  188.             if (employee.yearsOfService >= 5) {
  189.                 classification = "核心员工";
  190.             } else {
  191.                 classification = "高潜力员工";
  192.             }
  193.         } else if (employee.performanceScore >= 80) {
  194.             if (employee.yearsOfService >= 8) {
  195.                 classification = "资深员工";
  196.             } else if (employee.yearsOfService >= 3) {
  197.                 classification = "稳定员工";
  198.             } else {
  199.                 classification = "新员工";
  200.             }
  201.         } else if (employee.performanceScore >= 70) {
  202.             if (employee.yearsOfService >= 5) {
  203.                 classification = "待提升员工";
  204.             } else {
  205.                 classification = "观察员工";
  206.             }
  207.         } else {
  208.             classification = "待改进员工";
  209.         }
  210.         
  211.         return classification;
  212.     },
  213.    
  214.     // 生成绩效报告
  215.     generateReport: function(employee) {
  216.         var report = "【员工绩效报告】\n";
  217.         report += "姓名: " + employee.name + "\n";
  218.         report += "部门: " + employee.department + "\n";
  219.         report += "职位: " + employee.position + "\n";
  220.         report += "工龄: " + employee.yearsOfService + "年\n";
  221.         report += "绩效分数: " + employee.performanceScore + "分\n";
  222.         report += "奖金比例: " + (employee.bonusRate * 100) + "%\n";
  223.         report += "员工分类: " + this.classifyEmployee(employee) + "\n";
  224.         
  225.         // 使用 switch 语句添加建议
  226.         var classification = this.classifyEmployee(employee);
  227.         report += "\n【发展建议】\n";
  228.         
  229.         switch (classification) {
  230.             case "核心员工":
  231.                 report += "- 考虑晋升机会\n";
  232.                 report += "- 赋予更多管理职责\n";
  233.                 report += "- 提供股权激励\n";
  234.                 break;
  235.             case "高潜力员工":
  236.                 report += "- 提供专业技能培训\n";
  237.                 report += "- 安排导师指导\n";
  238.                 report += "- 给予挑战性项目\n";
  239.                 break;
  240.             case "资深员工":
  241.                 report += "- 经验分享和传承\n";
  242.                 report += "- 参与重要决策\n";
  243.                 report += "- 保持工作热情\n";
  244.                 break;
  245.             case "稳定员工":
  246.                 report += "- 提升专业技能\n";
  247.                 report += "- 增加工作挑战性\n";
  248.                 report += "- 职业发展规划\n";
  249.                 break;
  250.             case "待提升员工":
  251.                 report += "- 制定改进计划\n";
  252.                 report += "- 提供必要培训\n";
  253.                 report += "- 定期绩效回顾\n";
  254.                 break;
  255.             case "观察员工":
  256.                 report += "- 明确工作期望\n";
  257.                 report += "- 提供指导支持\n";
  258.                 report += "- 设定短期目标\n";
  259.                 break;
  260.             case "待改进员工":
  261.                 report += "- 制定详细改进计划\n";
  262.                 report += "- 考虑岗位调整\n";
  263.                 report += "- 必要时启动PIP流程\n";
  264.                 break;
  265.         }
  266.         
  267.         return report;
  268.     }
  269. };

  270. // 主评估流程
  271. function evaluateEmployeePerformance(name, department, position, yearsOfService, baseSalary) {
  272.    
  273.     // 创建员工对象
  274.     var employee = new Employee(name, department, position, yearsOfService);
  275.    
  276.     // 评估绩效
  277.     var performanceScore = PerformanceEvaluator.evaluateEmployee(employee);
  278.    
  279.     // 计算奖金
  280.     var bonus = BonusCalculator.calculateBonus(employee, baseSalary);
  281.    
  282.     // 生成分类
  283.     var classification = EmployeeClassifier.classifyEmployee(employee);
  284.    
  285.     // 生成报告
  286.     var report = EmployeeClassifier.generateReport(employee);
  287.    
  288.     // 输出结果
  289.     var result = report;
  290.     result += "\n【奖金信息】\n";
  291.     result += "基础工资: ¥" + baseSalary + "\n";
  292.     result += "奖金金额: ¥" + bonus.toFixed(2) + "\n";
  293.     result += "总薪资: ¥" + (baseSalary + bonus).toFixed(2) + "\n";
  294.    
  295.     return result;
  296. }

  297. // 批量评估示例
  298. function batchEvaluateEmployees() {
  299.     var employees = [
  300.         {name: "张三", department: "技术部", position: "高级工程师", years: 6, salary: 15000},
  301.         {name: "李四", department: "销售部", position: "经理", years: 8, salary: 20000},
  302.         {name: "王五", department: "市场部", position: "主管", years: 4, salary: 12000},
  303.         {name: "赵六", department: "人事部", position: "专员", years: 2, salary: 8000},
  304.         {name: "钱七", department: "技术部", position: "经理", years: 12, salary: 25000}
  305.     ];
  306.    
  307.     var allResults = "【批量员工绩效评估结果】\n";
  308.     allResults += "========================================\n\n";
  309.    
  310.     for (var i = 0; i < employees.length; i++) {
  311.         var emp = employees[i];
  312.         allResults += evaluateEmployeePerformance(
  313.             emp.name,
  314.             emp.department,
  315.             emp.position,
  316.             emp.years,
  317.             emp.salary
  318.         );
  319.         allResults += "\n========================================\n\n";
  320.     }
  321.    
  322.     return allResults;
  323. }

  324. // 演示函数
  325. function demonstrateComplexConditionals() {
  326.    
  327.     console.log("=== 复杂条件语句示例 - 员工绩效评估系统 ===\n");
  328.    
  329.     // 单个员工评估示例
  330.     console.log("【单个员工评估示例】");
  331.     var singleResult = evaluateEmployeePerformance("张三", "技术部", "高级工程师", 6, 15000);
  332.     console.log(singleResult);
  333.    
  334.     console.log("\n【批量员工评估示例】");
  335.     var batchResult = batchEvaluateEmployees();
  336.     console.log(batchResult);
  337.    
  338.     // 特殊条件测试
  339.     console.log("【边界条件测试】");
  340.     var edgeCaseResult = evaluateEmployeePerformance("测试员工", "技术部", "实习生", 0, 5000);
  341.     console.log(edgeCaseResult);
  342. }

  343. // 执行演示
  344. demonstrateComplexConditionals();
复制代码



unto演示 try-catch-finally-throw 语句的复杂用法nextnocontent
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

相关导读了
    采集亚马逊正版群发工具有没有?
    Apr.20旅行X心语今天来说说YYPOST新功能的一个灵活用法,采集亚马逊商品信息,并且获得排名的软件,亚马逊现在越来越多客户做,淘宝的水是越来越清了,以前做电商的客户,现在都转战到外国,最赚钱的要数一些客户往亚马逊里堆了吧,拿我这个YYPOST的客户,最多的是采集,分析排名,刷价格,刷数量,改价,刷访问量等等技术

    企业发展B2B网站有什么东东软件可以发呢
    标题企业发展网B2B软件,现在虽然B2B网站收录不错,可愁的是心急的人们,他们太想一口吃撑胖子了,发帖宣传虽然不能像佛系那样淡定,但也不能像跑火车那般急躁对待,自己内容不收录,完全是自己操作内容问题,可以参考一下别人的内容是怎么弄的,然后自己要试着转变,而且收录这个内容,常常会变化的,不是一种规则就吃到老

    搜房天下房聊软件哪一个好呢
    本帖最后由 发帖软件 于 2019-5-22 16:15 编辑 2搜房天下群发房聊信息软件,开始本来打算做58同城的,但发一个就要一次点触验证码,这就让人没有感觉到存在的价值了吧,都是卖二手房和新房的搜房天下倒是可以发即时聊天信息,也没有发现他这个网站有啥子限制,登陆一个搜房天下账号,然后采集回来分类列表的网址,然后就一

    大家坛有没有好用的群发工具下载呢
    当你的笑容给我礼貌的招呼,大家坛全自动发帖软件,宣传推广是一场持久战,总是有一些人把软件用了一天,或是几个小时,就觉得自己付出太多了,那加进来的粉丝,或是流量,应该是和宣传多少成正比的,其实没有这么便宜的事,就像很多阅读量超过一百万的视频,或是电影,真正会在屏幕打赏的人不会超过三千,真正大额打赏给主

    群发正版软件中国塑料网
    中国塑料网群发软件YYPOST脚本下载地址,这个网站会有一个很奇怪的问题就是你在首页登陆无半个验证码,但在登陆网址登陆就会有一个验证码,所以我们灵活一些,在首页登陆就不用输入验证码了哈。网站秒收录比较高,但发的都是五金和建筑行业,先前有很多人都是发土建工程的大公司操作的,现在这个网站专为那个行业诞生的吧。

    OpenStreetMap网站正版2019年发帖工具下载
    本帖最后由 发帖软件 于 2019-5-21 11:13 编辑 OpenStreetMap网站全自动群发,OpenStreetMapOpenStreetMap(简称OSM,中文是公开地图)是一个网上地图协作计划,目标是创造一个内容自由且能让所有人编辑的世界地图。有的人编辑地图然后等收录,有的人发日志等收录,我们这里也是利用地图日志做为宣传的目标,简单的脚本理

    搜房天下全自动收短信全自动识别验证码注册账号软件
    房天下自动注册机,这个脚本是前几天发房聊的脚本廷伸品种,这个脚本能做到自动注册账号,自动保存账号,自动发房聊的效果,不过今天我们主要说一说怎么注册账号写脚本吧,这个搜房天天下的账号,可以发提问,可以发房聊,发论坛,发博客,还有发个人中心页都是有秒收的效果的,这样就省去了去买号,去乱花钱的效果了吧,而

    企业邮箱安卓端有什么APP软件可以发的呢
    请输入标题企业邮箱安卓发发送邮箱脚本,这个脚本是利用企业邮箱进行群发的,全程是一种模拟手工操作的过程,所以封号是很少的,而且企业邮箱群发到普通QQ邮箱不容易进垃圾箱中的,所以这个脚本也是这样的原理,不过最好是利用一些多开器,登陆多点的QQ邮箱账号会比较流畅一些,然后用软件一个一个的切换APP进行群发邮件会

    头条留评论软件有没有好用的呢?
    今天整一个今日头条留言软件,对于留言YYPOST是优势是比较大的存在,因为他往往专注一些下拉定位的优点,像今日头条这样,还是需要一些特殊下拉定位的,因为他新闻有长有短,有图有视频的,所以综合起来定位是比较难的,如果用POST也不是很轻松可以破解他的加密参数。这个脚本也是有一个不好的地方就是换号会比较麻烦,您电

    单网页生成神器
    最近新技术,网页生成机占领了整个网络的半壁江山,效果很疯狂,虽然不知道能持续多久,作为开发软件的领头者,一直在找收录的方法,一直在努力创新着,一直被人模仿,却从没有被超越过,这个网页生成机,已经出来有一段时间了,一直没有拿出来分享,醉过醉过,它是利用的一些小小收录漏洞整的,您最好用一些老站域名,进行

关闭
快速回复 返回列表 返回顶部
本站自动发贴软件,是现在最流行的做脚本软件,这种发贴工具,不但发贴收录快,而且抢占好的先机,完全自由编辑,实现针对性群发模拟操作,软件可以顶贴,也可以发贴,可以兼容支持Discuz、PHPWind、Dvbbs三大主流论坛,有手机验证码收件,邮件收发的功能,支持验证码识别,注册问题识别,多线程任务,自动上传头像,自动激活注册邮件,兼容防注册插件,本站软件原创正版,更新效率最快的原创软件。 『网络推广软件』『自动发帖软件』『 自动发帖