当前位置: 首页 > news >正文

做网站多少费用三门县正规营销型网站建设地址

做网站多少费用,三门县正规营销型网站建设地址,环球军事网最新军事新闻最新消息,招聘网站制作概念 大量的 if 判断操作#xff0c;逻辑比较复杂#xff0c;并且处理起来相对麻烦。可以采用策略模式来优化分支代码。 策略模式 #x1f4a4;#xff1a;是一种行为设计模式#xff0c;它允许你在运行时根据不同情况选择不同的算法或行为。 设计模式 #x1f90c;逻辑比较复杂并且处理起来相对麻烦。可以采用策略模式来优化分支代码。 策略模式 是一种行为设计模式它允许你在运行时根据不同情况选择不同的算法或行为。 设计模式 就是提前第一次了解全过程第二次直接规划不必要的坑。 我们在写代码亦是如此一定也遇到过许多类似的场景。随着程序员经验的增加我们对于这些常见场景的处理越来越得心应手甚至总结出了针对性的“套路”下次遇到此类问题直接运用“套路”解决省心又省力。这些在软件开发过程中逐渐积累下来的“套路”就是设计模式。 设计模式的目标之一就是提高代码的可复用性、可扩展性和可维护性。正因如此虽然有时候我们不知道某个设计模式但是看了相关书籍或文章后会有一种“啊原来这就是设计模式”的恍然大明白。 例 const game (name) {if (name 原s) {console.log(启动);} else if (name xx精英) {console.log(我先成盒了你们加油);} else if (name 云顶yy) {console.log(这就是我们之间的羁绊);} else if (name 王者zz) {console.log(我再也不买皮肤了);} else {console.log(我啥也没玩);} }; game(原s); // 启动简单优化一下写法 const game (name) {let obj {原s: 启动,xx精英: 我先成盒了你们加油,云顶yy: 这就是我们之间的羁绊,王者zz: 我再也不买皮肤了,};if (obj[name]) {console.log(obj[name]);} else {console.log(我啥也没玩);} }; game(原s); // 启动这种写法只是参考了策略模式的思路将逻辑封装到一个对象中。这种方式使得这个对象能够独立出来只需专注于维护这个对象本身即可。如果要是每个方法都不同那该如何去写呢?接着往下看 const game (name) {let obj {原s: () {console.log(启动);},xx精英: () {console.log(我先成盒了你们加油);},云顶yy: () {console.log(这就是我们之间的羁绊);},王者zz: () {console.log(我再也不买皮肤了);},};if (obj[name]) {obj[name]();} else {console.log(我啥也没玩);} };game(原s); // 启动这种写法就是将对象中的处理逻辑单独封装成一个函数让他内部自己处理自己所用到的逻辑。 下面这种写法代码更加灵活和可扩展也是我比较推荐的写法。 const strategies {原s: () console.log(启动),xx精英: () console.log(我先成盒了你们加油),云顶yy: () console.log(这就是我们之间的羁绊),王者zz: () console.log(我再也不买皮肤了), };function executeStrategy(name) {if (strategies[name]) {strategies[name]();} else {console.log(我啥也没玩);} }executeStrategy(原s);在这个例子里面我们可以将游戏名作为参数传递给函数而不是在函数内部定义多个条件。这样我们就可以将函数封装成一个可复用的策略以便在将来添加更多的游戏名称。 1. 案例 下面看一下使用场景比如我们需要做一个 from 表单验证需要验证手机号和密码 !DOCTYPE html html langenheadmeta charsetUTF-8 /meta nameviewport contentwidthdevice-width, initial-scale1.0 /title表单/titlescript src./src/index.js/script/headbodyform idlogin-form action methodpostlabel foraccount手机号/labelinput typenumber idaccount nameaccount /label forpassword密码/labelinput typepassword idpassword namepassword /button idlogin登录/button/formscriptlet loginForm document.getElementById(login-form);loginForm.onsubmit function (e) {e.preventDefault();let account document.getElementById(account).value;let pwd document.getElementById(password).value;if (account null || account ) {console.log(手机号不能为空);return false;}if (pwd null || pwd ) {console.log(密码不能为空);return false;}if (!/(^1[3|4|5|7|8][0-9]{9}$)/.test(account)) {console.log(手机号格式错误);return false;}if (pwd.length 6) {console.log(密码不能小于六位);return false;}// 模拟ajax请求setTimeout(() {console.log(登录成功);}, 1000);};/script/body /html在这里可以发现问题也是很明显的如果你想说他能跑起来吗他也能跑起来但是里面的 if 语句到处都是每次新增一种校验需要整体去调整这个 loginForm.onsubmit 代码复用性也很差只能手动矫正 2. 优化 先将此方法抽离出来 let obj {isNonEmpty: function (value, errorMsg) {if (value || value null) {return errorMsg;}},isMobile: function (value, errorMsg) {// 手机号码正则if (!/(^1[3|4|5|7|8][0-9]{9}$)/.test(value)) {return errorMsg;}},minLength: function (value, errorMsg) {if (value.length length) {return errorMsg;}}, };修改 Context 内容部分 let loginForm document.getElementById(loginForm);loginForm.onsubmit function (e) {e.preventDefault();let phone strategies.isMobile(account, 手机号格式错误);let pwdMinLength strategies.minLength(pwd, 密码不能小于六位);let error accountIsMobile || pwdMinLength;if (error) {console.log(error);return false;} };完整代码如下 divform idloginform action methodpostlabel foraccount手机号/labelinput typenumber idaccount nameaccount /label forpassword密码/labelinput typepassword idpassword namepassword /button idlogin登录/button/form /divlet account ; // 这里的变量需要初始化一下不然无法获取到value let pwd ;let loginForm document.getElementById(loginform); let strategies {isNonEmpty: function (value, errorMsg) {if (value || value null) {return errorMsg;}},isMobile: function (value, errorMsg) {// 手机号码格式if (!/(^1[3|4|5|7|8][0-9]{9}$)/.test(value)) {return errorMsg;}},minLength: function (value, length, errorMsg) {console.log(value);if (value.length length) {return errorMsg;}}, };loginForm.addEventListener(submit, (e) {account document.getElementById(account).value;pwd document.getElementById(password).value;e.preventDefault();let phonenull strategies.isNonEmpty(account, 手机号不能为空);let phone strategies.isMobile(account, 手机号格式错误);let pwdMinLength strategies.minLength(pwd, 6, 密码不能小于六位);let error phonenull || phone || pwdMinLength;if (error) {console.log(error);return false;} else {console.log(提交成功);} });
http://www.hkea.cn/news/14510990/

相关文章:

  • 河北邯郸移动网站建设如何做网站好看
  • 佛山网站优化建设多少钱英语
  • 清河网站建设设计哪些网站是专做女性护肤品
  • 临沂高端大气网站建设.net 网站域账号自动验证码
  • 上海大良网站建设网络培训机构投诉电话
  • 南昌网站建设模板合作网站建设要学哪些方面
  • 张店网站制作设计公司建设部网站查询注册岩土工程师
  • 网站建设签收单租用云服务器一年大概的费用
  • 西安知名网站制作公司全面的基础微网站开发
  • 杭州外贸建站什么软件可以制作图片加文字
  • 教做西餐的网站广告公司名称创意
  • 网站网站自己做html网页制作大作业范例
  • 网站做外链的具体步骤seo 怎么建设网站外链
  • 邢台网站制作费用wordpress付费问答
  • 成都网站建设案例单招网如何做网站弹窗广告
  • 精品课程建设网站清单杭州住房和城乡建设厅官网
  • 现在有什么网站可以做兼职的九江网站建设排行榜
  • 做外贸需要到外汇管理网站天津高端模板建站
  • 做推广哪个网站最热门新手怎么入行sem
  • 网站推广是做什英文网站建设cms
  • wordpress写网站教程网站建设kaicz
  • 天河区做网站公司网站搜索引擎
  • 上海建企业网站怎么做qq刷赞等网站
  • 东阳网站建设价格可拖拽建设网站没有了吗
  • 网站怎么做png阴影微信自创小程序
  • 网站建设人员构成网站后台管理系统展望
  • 网站建设自助建站企业厦门外贸网站搭建
  • 北京网站建设厂家嘉祥住房和城乡建设局网站
  • 怎么套模板做网站安徽酒店网站建设
  • 怎么通过做网站来赚钱平台网站建设有哪些方面