Javascript OR语句始终为true

Javascript OR statement always true

本文关键字:true OR 语句 Javascript      更新时间:2023-09-26

我想检查用户是否没有登录Wordpress(正文将包含类'logging'),或者用户是否不在my-resources部分(foo.co.uk/my-resources/)。如果其中一个失败,我希望启动else语句。

然而,我的代码总是返回为真:

if(!$('body').hasClass('logged-in') || (document.location.href.indexOf('/my-resources/') === -1))
{
    console.log ( 'DO SOMETHING. The user is not logged in or in my resources' );
}
else
{
    console.log ( 'DO NOTHING. The user is logged in or in my resources' );
}

您正在处理一个逻辑错误。else语句仅在if条件的否定为true时执行。否定您的条件是,用户同时登录了/my resources/。根据该问题,您希望在用户登录或登录/my resources/时执行else分支。将if语句更改为否定此else条件,即用户未登录并且用户不在/my resources/中。(只需将||更改为&&):

if(!$('body').hasClass('logged-in') && (document.location.href.indexOf('/my-resources/') === -1))