javascript - JavaScript 函数返回延迟的布尔值
问题描述
我不了解我的 JavaScript 函数的行为。
有一个简单的函数可以检查 URL 是否与 RegExp 匹配。它返回一个布尔值。
/**
* Check the url is matching the ProviderURL.
*
* @return {boolean} ProviderURL as RegExp
*/
this.matchURL = function(url) {
return !(this.matchException(url)) && urlPattern.test(url);
};
但是,当我调用此函数时,它在 if 条件中返回 false,但在 console.log 中返回 true。
console.log(providers[i].matchURL(request.url)); //true
if(providers[i].matchURL(request.url)) {
console.log("never displayed.");
}
我现在已经用以前的 if 条件“修复”了这个问题。不过,我想知道为什么程序会这样。
let match = providers[i].matchURL(request.url);
//really weird method
if(match == providers[i].matchURL(request.url));
if(match)
{
result = removeFieldsFormURL(providers[i], request);
}
它是一个WebExtensions 插件。
url模式:
/**
* Add URL pattern.
*
* @require urlPatterns as RegExp
*/
this.setURLPattern = function(urlPatterns) {
urlPattern = new RegExp(urlPatterns, "mgi");
};
解决方案
推荐阅读
- centos7 - 让我们在重写的域上加密或 SSL
- java - 如何在返回参数中避免(有界)通配符
- javascript - 如何从javascript中的JSON对象获取没有键的值
- python - 从网页表中刮取价值
- c# - 数据源窗口已禁用且无法正常工作,WinForm 项目使用数据源
- c# - 无法加载文件或程序集“Microsoft.CodeDom.Providers.DotNetCompilerPlatform。(来自 HRESULT 的异常:0x80131040)
- spring-data-jpa - Spring data jpa - 复杂查询
- c# - CellEditEnding 未向 SelectedItem Binding 发送新值
- pdf-generation - 使用链接跳转到 PDF 内的目标
- javascript - 使用 datepicker 启用和禁用日期 jquery