如果在 if 语句中,是否有更好的编码方式
Is there a better way to code if within if statement
我想知道是否有更简洁的方法来编写此 javascript 代码。 if
在 if
中似乎很平均。如果可能,很高兴使用 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;
}
将您的条件与 && 运算符结合起来。因为 && 从左到右求值,所以只有当前面的 is/are 为真时,它才会测试下一个条件。
始终可以执行内联 if
语句:
var exist = blogURL != null ? !/^https?:\/\//i.test(blogURL) : false;
if(exist){
}
或其他人推荐的&&
。
这是一行最优化的整洁解决方案:
blogURL = (blogURL && !blogURL.startsWith("https://")) ? ('http://' + blogURL) : blogURL;
我想知道是否有更简洁的方法来编写此 javascript 代码。 if
在 if
中似乎很平均。如果可能,很高兴使用 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;
}
将您的条件与 && 运算符结合起来。因为 && 从左到右求值,所以只有当前面的 is/are 为真时,它才会测试下一个条件。
始终可以执行内联 if
语句:
var exist = blogURL != null ? !/^https?:\/\//i.test(blogURL) : false;
if(exist){
}
或其他人推荐的&&
。
这是一行最优化的整洁解决方案:
blogURL = (blogURL && !blogURL.startsWith("https://")) ? ('http://' + blogURL) : blogURL;