JS - 这有什么区别?

M_W*_*ett 1 javascript if-statement

我是JS的新手,知道以下两个if语句条件之间的区别是非常有用的...

第一个条件(实际上没有工作):

if ( window.location.pathname == '/#register' ) {

// Code

}
Run Code Online (Sandbox Code Playgroud)

第二个条件:

if (document.URL.indexOf("#register") >= 0) {

// Code...

}
Run Code Online (Sandbox Code Playgroud)

仅供参考,这可以帮助我解决我在这里遇到的错误

Den*_*ret 6

第一个检查完全匹配.并且它在路径名上执行,它不包含哈希值,因此它可能不会执行您想要的操作.

第二个检查字符串包含"#register",因此完整路径可能更大,如/#register_or_not/some/other/path#register

可能你最好的选择是在URL上进行正则表达式模式匹配,以确保它匹配的哈希只是'注册',同时允许URL的其余部分为:

if (document.URL.match(/.*#register$/)) {
Run Code Online (Sandbox Code Playgroud)

  • @StevenMoseley这是CW,请不要犹豫,编辑以使其更好. (2认同)