提问人:altbanky 提问时间:9/18/2020 更新时间:9/18/2020 访问量:29
调用布尔值 vs. 不等于 -1
Calling a boolean vs. not equal to -1
问:
我正在开发一个从相应的前缀(如 www、.com 等)获取域名的函数,并且对将我的别名称为 true 和将别名称为不等于 -1 有什么区别感到有点困惑。
从技术角度来看,有人可以帮我理解为什么不等于 -1 的方法有效,而不是仅仅将别名称为 true?(我可能正在屠杀这个问题,所以请纠正我的语言使用)
我最初是从这个开始的,但它没有用。
function getDomain(url) {
//create result
let result = '';
let searchWWW = 'www.';
let searchHTTP = 'http://';
let searchHTTPS = 'https://';
let searchDOT = '.';
let searchCOM = '.com';
let searchCO = '.co';
let searchRU = '.r';
let indexOfStart = url.indexOf(searchWWW);
let indexOfStartHTTP = url.indexOf(searchHTTP);
let indexOfStartHTTPS = url.indexOf(searchHTTPS);
let indexOfEnd = url.indexOf(searchCOM);
let indexOfEndDot = url.indexOf(searchDOT);
// if www
if (indexOfStart) {
//slice from www to dot
result += url.slice(indexOfStart + 4, url.indexOf(searchDOT, (indexOfEndDot + 1)));
//if no www and no https
} else if (!indexOfStartHTTPS) {
//slice from https to dot
result += url.slice(indexOfStartHTTPS + 8, indexOfEndDot);
} else {
result += url.slice(indexOfStartHTTP + 7, indexOfEndDot);
}
//return result
return result;
}
另一方面,这确实奏效了。
//create result
let result = '';
let searchWWW = 'www.';
let searchHTTP = 'http://';
let searchHTTPS = 'https://';
let searchDOT = '.';
let searchCOM = '.com';
let searchCO = '.co';
let searchRU = '.r';
let indexOfStart = url.indexOf(searchWWW);
let indexOfStartHTTP = url.indexOf(searchHTTP);
let indexOfStartHTTPS = url.indexOf(searchHTTPS);
let indexOfEnd = url.indexOf(searchCOM);
let indexOfEndDot = url.indexOf(searchDOT);
// if www
if (indexOfStart !== -1) {
//slice from www to dot
result += url.slice(indexOfStart + 4, url.indexOf(searchDOT, (indexOfEndDot + 1)));
//if no www and no https
} else if (!indexOfStartHTTPS) {
//slice from http/https to dot
result += url.slice(indexOfStartHTTPS + 8, indexOfEndDot);
} else {
result += url.slice(indexOfStartHTTP + 7, indexOfEndDot);
}
//return result
return result;
}
感谢您的帮助,期待获得更好的理解。
答: 暂无答案
评论
-1
if (thatVariable)
if (thatVariable !== -1)
indexOf()