JavaScript函数发送字符串但接收布尔值

Gya*_*ash 0 javascript

我正面临着javascript函数的意外行为.我将一个字段的ID作为字符串传递给函数,但它接收为bool值.请帮助下面的代码.

功能

function page_smooth_scroll(target_id) {
    if (target_id =! null) {
        $j('html, body').animate({
            scrollTop: $j("#" + target_id).offset().top - 120
        }, 500);
    }
}
Run Code Online (Sandbox Code Playgroud)

调用功能

function validatePassword(){
            var validPassword = false;
            var pwd = $j("#Password").val().trim();
            var cfmPwd = $j("#ConfirmPassword").val().trim();
            if((pwd == "") || (cfmPwd == "")){
                $j("#ConfirmPassword").addClass("invalidPwd").nextAll("ul.err-msg").html("<li>Please enter Password</li>");
              //here id is passed as string
                page_smooth_scroll("ConfirmPassword");
                validPassword = false;
            }
            else{
                $j("#ConfirmPassword").removeClass("invalidPwd").nextAll("ul.err-msg").empty();
                if(pwd != cfmPwd){
                    $j("#ConfirmPassword").addClass("invalidPwd").nextAll("ul.err-msg").html("<li>Password does not match</li>");
                  //here id is passed as string
                    page_smooth_scroll("ConfirmPassword");
                    validPassword = false;
                }
                else{
                    $j("#ConfirmPassword").removeClass("invalidPwd").nextAll("ul.err-msg").empty();
                    validPassword = true;
                }
            }
            return validPassword;
        }
Run Code Online (Sandbox Code Playgroud)

调试传递字符串时图像在下面

接受布尔

Eri*_*rik 5

if (target_id =! null) {
Run Code Online (Sandbox Code Playgroud)

我想你的意思是 a != b

因为a=!b意味着a = !b"赋予相反的布尔值",这确实会将任何东西变成布尔值.

下次如果您认为函数是"接收布尔值",请确保在运行任何语句之前调试该值.我确定它在进入函数时仍然是一个字符串.