当前位置: 首页 > 科技观察

每个前端开发人员都必须知道的十个JavaScript技巧

时间:2023-03-20 23:57:42 科技观察

前言以前写了一大堆垃圾代码,现在看起来糟透了。当我再次看到那些代码片段时,我什至怀疑自己是否适合做一名程序员。因此,这里有10个我总结的JavaScript技巧,可帮助您避免编写我曾经写过的那种垃圾代码。1.Promise回调地狱Promise提供了一种优雅的方式来处理JavaScript中的异步操作。这也是避免“回调地狱”的解决方案之一。但是我并没有真正理解它的意思,所以我写了这段代码。我做了这些事情:首先获取用户的基本信息。按用户个人资料获取所有文章的简要摘要。通过文章简介获取文章详细信息。//?getUserInfo()(userInfo)=>getArticles(userInfo)(articles)=>Promise.all(articles.map((article)=>(articleDetails)=>console.log(articleDetails)})})})我在这里根本没有使用Promise,我们应该像下面的代码片段一样处理它://?getUserInfo().then((getArticles)(articles)=>returnPromise.all(articles.map((article)=>})(articleDetails)=>console.log(articleDetails)})2.不处理错误信息我经常只写成功请求的代码逻辑,忽略请求失败。//?constgetUserInfo=async()=>{try{constuserInfo=awaitfetch('/api/getUserInfo')}catch(err){}}这是没有经验的,我们应该给出一个用户友好的提示,而不是什么都不做。//?constgetUserInfo=async()=>{try{constuserInfo=awaitfetch('/api/getUserInfo')}catch(err){Toast(err.message)}}3.为函数设置太多参数当一个函数的参数太多时,它的可读性就会变差,甚至让我们想知道如何正确传递参数。示例我们想获取用户的一些基本信息,比如姓名、性别、年龄等。//?constgetUserInfo=(name,age,weight,gender,mobile,nationality,hobby,address)=>//...}getUserInfo('fatfish',100,2000,...)糟透了,如果你的同事写这样的代码,你会揍他吗?事实上,当函数参数过多时,应该使用对象来传递需要的信息,这样会提高其可读性和可扩展性。//?constgetUserInfo=(options)=>const{name,gender,age,mobile,weight,nationality,hobby,address}=options//...}getUserInfo({name:'fatfish',age:100,weight:2000//...})4.幻数朋友们,你写过这样的代码吗?很多地方用数字来做逻辑判断似乎很正常。是的,这让我很困惑1、2、3到底是什么意思。?//component1.jsif(status===1||status===2){//...}elseif(status===3){//...}//component2.jsif(status===1||status===2){//...}我们最好将这些数字定义为常量。//?//constants.jsexportconstSTATUS={//是成年人,实名认证adultRealName:1,//未成年人,实名认证minorRealName:2,//非实名authenticationnotRealName:3,//...}//component1.jsimport{STATUS}from'./constants.js'if([STATUS.adultRealName,STATUS.minorRealName].includes(status)){//...}elseif(status===STATUS.notRealName){//...}//component2.jsimport{STATUS}from'./constants.js'//component2.jsif([STATUS.adultRealName,STATUS.minorRealName].includes(status)){//...}5.使用.length来确定字符串的长度在大多数情况下,使用.length来确定字符串的长度是安全的,但是在form的情况下输入小心。当我们打字时