如果在 if 语句中,有没有更好的编码方法



我想知道是否有一种更干净的方法来编写这个javascript代码。ifif似乎很一般。如果可能的话,很乐意使用es5/es6。基本上,我正在检查变量是否存在,如果确实存在,我想确保 url 包含https,如果没有,则更新它。

if (blogURL) {
if (!/^https?:///i.test(blogURL)) {
var blogURL = 'http://' + blogURL;
}
}

使用&&在单个if语句中测试这两个条件并删除 var,因为您可能只想更新现有变量,而不是看起来像您正在尝试定义一个新变量。

if (blogURL && !/^https?:///i.test(blogURL)) {
blogURL = 'http://' + blogURL;
}

这是因为如果第一个条件测试失败,则不会执行第二个条件测试。 这是在Javascript中执行此类操作的常用方法。

if (blogURL && (!/^https?:///i.test(blogURL)))
{
var blogURL = 'http://' + blogURL;
}

将您的条件与 && 运算符相结合。因为&&从左到右评估,所以只有当前一个条件为真时,它才会测试下一个条件。

总是可以执行内联if语句:

var exist = blogURL != null ? !/^https?:///i.test(blogURL) : false;
if(exist){
}

或者其他人推荐的&&

这是一行最优化的整洁干净的解决方案:

blogURL = (blogURL && !blogURL.startsWith("https://")) ? ('http://' + blogURL) : blogURL;

相关内容

  • 没有找到相关文章

最新更新