JavaScript函数返回布尔延迟

时间:2018-06-16 19:46:45

标签: 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.");
}

我现在已经修复了#34;先前的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 addon

URLPATTERN:

    /**
    * Add URL pattern.
    *
    * @require urlPatterns as RegExp
    */
    this.setURLPattern = function(urlPatterns) {
        urlPattern = new RegExp(urlPatterns, "mgi");
    };

0 个答案:

没有答案