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

积分商城网站开发百度上看了不健康的内容犯法吗

积分商城网站开发,百度上看了不健康的内容犯法吗,网页设计与网站建设第05,国外优秀展厅设计写点东西《Javascript switch 语句的替代方法》 那么 switch 语句有什么问题? Object Literal 查找的替代方法 将我们学到的东西变成一个实用函数 您需要的一切都在一个地方# [](#javascript-version) Javascript 版本Tyepscript version🌟更多精彩 本文…

写点东西《Javascript switch 语句的替代方法》

  • 那么 switch 语句有什么问题?
  • Object Literal 查找的替代方法
  • 将我们学到的东西变成一个实用函数
  • 您需要的一切都在一个地方# [](#javascript-version) Javascript 版本
  • Tyepscript version
  • 🌟更多精彩

在这里插入图片描述

本文扩展了 Todd Motto 关于用对象字面量替换 switch 语句的想法。这是过时、笨拙且冗长的 switch 语句的一种非常简洁美观的替代方法。在本文的最后,您将获得一个基于 Todd 解决方案的实用程序函数,该函数对开发人员更加友好,因此请坚持到最后!

如果您对技术细节不感兴趣,只想了解实用程序函数,请向下滚动到最后一节(您需要的一切都在一个地方)。

那么 switch 语句有什么问题?

虽然 switch 语句在某些情况下很有用,但许多人认为它不是 Javscript 最适合其用途的设计。它不如其他结构灵活、可读和可维护。

例如,对 switch 语句的主要批评之一是其贯穿行为。如果您忘记在 case 的末尾包含 break 语句,则控制权将贯穿到下一个 case ,从而导致意外行为,如下面的示例所示。这可能会使代码更容易出错且更难维护。

switch (fruit) {case 'apple':console.log('Apple selected');// Missing break statement, falls through to the next casecase 'orange':console.log('Orange selected');break;case 'banana':console.log('Banana selected');break;default:console.log('Unknown fruit');
}

在这个示例中,如果 fruit 为 'apple' ,则 "Apple selected""Orange selected" 都将被记录。

Object Literal 查找的替代方法

switch 语句相比,Object Literal 更灵活、更具表现力。

以下是如何使用它们仅返回 string 值。

const getDate (unit) {var date = {'year': '2024','month': 'January','day': '21','default': 'Default value'};return (date[unit] || date['default']);
}var month = getDate('month');
console.log(month); // January

有时我们需要编写更复杂的代码,而仅返回 string 是不够的。我们可以进一步改进上述代码,在其中使用函数而不是字符串,以便我们可以包含更复杂的代码。

const getDate (unit) {var date = {'year': () => {// do more complicated stuff here// just returning a string in this casereturn '2024';},'month': () => {return 'January';},'day': () => {return '21';},'default': () => {return 'Default value'}};// we return the Object literal's function invokedreturn (date[unit] || date['default'])();
}var month = getDate('month');
console.log(month); // January

但是如果我们想要一个贯穿行为呢?我们可以轻松地使用对象字面量来实现这一点,它更具可读性、声明性和更不易出错。它还不会涉及添加或删除 break ,而这是我们正在寻找的。

const getDayType (day) {const isWeekDay = () => {return 'Weekday';}const isWeekEnd = () => {return 'Weekend';}var days = {'monday': isWeekDay,'tuesday': isWeekDay,'wednesday': isWeekDay,'thursay': isWeekDay,'friday': isWeekDay,'saturday': isWeekEnd,'sunday': isWeekEnd,  'default': () => {return 'Default value'}};// we return the Object literal's function invoked  return (days[day] || days['default'])();
}var dayType = getDayType('sunday');
console.log(dayType); // WeekEnd

将我们学到的东西变成一个实用函数

既然我们已经学会了如何使用 Object Literal 而不是 switch ,那么让我们根据学到的知识构建一个实用函数,以进一步简化我们的生活。

我们称我们的函数为 switchCase 。它接收一个具有 2 个属性的对象: casesdefaultCase 。Cases 是将容纳我们案例的对象字面量,而 defaultCase 是…嗯,默认案例。

const switchCase = ({cases, defaultCase}) {}

switchCase 是一个返回回调函数的高阶函数。回调函数接收 switch 表达式。

const switchCase = ({cases, defaultCase}) {return (expression) => {}
}

现在,回调函数需要做的就是返回调用的对象字面量函数。

const switchCase = ({cases, defaultCase}) {return (expression) => {return (cases[expression] || defaultCase)();}
}

就是这样!现在让我们看一个如何使用它的示例。

let date = new Date()const today = switchCase({cases: {year: () => date.getFullYear(),month: () => date.getMonth() + 1,day: () => date.getDate()},defaultCase: () => date
})today('year') // current year
today('month') // current month
today('day') // current day
today('century') // default case - returns the current date Object

对于 typescript 用户,我们可以利用泛型来允许以后要调用该函数的用户指定他们希望对象字面量函数返回的类型。

type SwitchCase<T> = {cases: {[key: string]: () => T},defaultCase: () => T
} const switchCase = <T,>({cases, defaultCase}: SwitchCase<T>) => {return (expression: string) => {return (cases[expression] || defaultCase)()}
}

这就是我们如何使用它的方式。请注意,我们不必总是指定类型,因为 Typescript 会自动推断它,除非它是多个类型的联合,如下所示。

let date = new Date()const today = switchCase<number | Date>({cases: {year: () => date.getFullYear(),month: () => date.getMonth() + 1,day: () => date.getDate()},defaultCase: () => date
})today('year') // current year
today('month') // current month
today('day') // current day
today('century') // default case - returns the current date Object

您需要的一切都在一个地方# Javascript 版本

实用程序函数:

const switchCase = ({cases, defaultCase}) => (expression) => (cases[expression] || defaultCase)()

用法: Tyepscript 版本

let date = new Date()const today = switchCase({cases: {year: () => date.getFullYear(),month: () => date.getMonth() + 1,day: () => date.getDate()},defaultCase: () => date
})today('year') // current year
today('month') // current month
today('day') // current day
today('century') // default case - returns the current date Object

Tyepscript version

实用功能:

const switchCase = <T,>({cases, defaultCase}: {cases: {[key: string]: () => T}, defaultCase: () => T}) => (expression: string) => (cases[expression] || defaultCase)()

用法:

let date = new Date()const today = switchCase<number | Date>({cases: {year: () => date.getFullYear(),month: () => date.getMonth() + 1,day: () => date.getDate()},defaultCase: () => date
})today('year') // current year
today('month') // current month
today('day') // current day
today('century') // default case - returns the current date Object

🌟更多精彩

点击👉这里~~


文章转载自:
http://freesheet.gthc.cn
http://dahabiah.gthc.cn
http://labret.gthc.cn
http://apolaustic.gthc.cn
http://triable.gthc.cn
http://tenuis.gthc.cn
http://podsolization.gthc.cn
http://oxycalcium.gthc.cn
http://penicillamine.gthc.cn
http://liassic.gthc.cn
http://syringeal.gthc.cn
http://discriminability.gthc.cn
http://ignuts.gthc.cn
http://indulgently.gthc.cn
http://tetraparesis.gthc.cn
http://hat.gthc.cn
http://caginess.gthc.cn
http://subaltern.gthc.cn
http://normothermia.gthc.cn
http://zoospermatic.gthc.cn
http://pastie.gthc.cn
http://kilobit.gthc.cn
http://thanatophidia.gthc.cn
http://churchgoing.gthc.cn
http://countermovement.gthc.cn
http://godlet.gthc.cn
http://lavishly.gthc.cn
http://illusionism.gthc.cn
http://microlanguage.gthc.cn
http://saccharize.gthc.cn
http://nardoo.gthc.cn
http://landeshauptmann.gthc.cn
http://reschedule.gthc.cn
http://handstand.gthc.cn
http://merohedral.gthc.cn
http://eiger.gthc.cn
http://aberdeenshire.gthc.cn
http://ethnohistoric.gthc.cn
http://chaplinesque.gthc.cn
http://guangxi.gthc.cn
http://pterylography.gthc.cn
http://kpc.gthc.cn
http://wallhanging.gthc.cn
http://erode.gthc.cn
http://overcrop.gthc.cn
http://cynosure.gthc.cn
http://isopulse.gthc.cn
http://isoetes.gthc.cn
http://swung.gthc.cn
http://boardinghouse.gthc.cn
http://pachuco.gthc.cn
http://reinforcement.gthc.cn
http://redaction.gthc.cn
http://dipperful.gthc.cn
http://superhuman.gthc.cn
http://mitsein.gthc.cn
http://modicum.gthc.cn
http://tuneable.gthc.cn
http://syllabography.gthc.cn
http://newswriting.gthc.cn
http://seasoned.gthc.cn
http://wrb.gthc.cn
http://pecker.gthc.cn
http://unwell.gthc.cn
http://xiphodon.gthc.cn
http://pantechnicon.gthc.cn
http://establishment.gthc.cn
http://sandburg.gthc.cn
http://humeral.gthc.cn
http://centilitre.gthc.cn
http://tonight.gthc.cn
http://bobby.gthc.cn
http://morphoneme.gthc.cn
http://bespeckle.gthc.cn
http://inspiringly.gthc.cn
http://hundred.gthc.cn
http://ffhc.gthc.cn
http://aesthetics.gthc.cn
http://microammeter.gthc.cn
http://pos.gthc.cn
http://actively.gthc.cn
http://arousal.gthc.cn
http://enmarble.gthc.cn
http://subtorrid.gthc.cn
http://navel.gthc.cn
http://acropetal.gthc.cn
http://junius.gthc.cn
http://procuratory.gthc.cn
http://feveret.gthc.cn
http://squiggly.gthc.cn
http://maestoso.gthc.cn
http://coloration.gthc.cn
http://neurosensory.gthc.cn
http://toxicoid.gthc.cn
http://miser.gthc.cn
http://obsidional.gthc.cn
http://jactancy.gthc.cn
http://accent.gthc.cn
http://costumbrista.gthc.cn
http://homoeopath.gthc.cn
http://www.15wanjia.com/news/98321.html

相关文章:

  • 平阳手机网站制作信息流广告的特点
  • 宁波网站建设工作室软文推广多少钱一篇
  • 做网站与运营一般多少钱深圳网站建设三把火科技
  • 教育app定制北京培训seo哪个好
  • 做金融网站拘留多久落实20条优化措施
  • b2b网站怎么注册推广工作的流程及内容
  • 寿光网站优化天津seo
  • 网站做视频推广类软文案例
  • 甘肃网站建设专家如何让百度快速收录
  • 网站建设系统淘宝网店代运营正规公司
  • 网站建设 嘉定专业网站seo推广
  • 泉州网站建设选择讯呢南阳seo优化
  • 动漫制作就业方向seo需要掌握哪些技术
  • 国外做3d h视频网站有哪些网站外链代发
  • 网站建设设计时代创信好武汉seo顾问
  • 成都网站logo设计百度网盘app怎么打开链接
  • 网站后台卸载cmsdede百度引擎提交入口
  • 网站制作开发及优化是什么关键词排名技巧
  • 做网站 程序员 暴富什么是网络营销与直播电商
  • 做的比较好看的国内网站百度关键字优化
  • 绍兴建设图审网站重庆网络推广专员
  • 学院网站建设规划今日国际重大新闻
  • 想自己做一个网站如何优化推广网站
  • wordpress怎么搬站seo营销方案
  • 沈阳哪家网站制作公司比较好标题关键词优化技巧
  • dedecms 网站安装长春网站搭建
  • 书店网站建设网站栏目结构阿里云建网站
  • 5g网络架构朔州网站seo
  • 营销型网站效果百度竞价点击神器下载安装
  • 网站内容做淘宝店铺链接影响排名吗十大网络推广公司