JS - 这有什么区别?

时间:2013-05-24 10:59:07

标签: javascript if-statement

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

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

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

// Code

}

第二个条件:

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

// Code...

}

仅供参考,这可以帮助我解决我遇到的here

错误

4 个答案:

答案 0 :(得分:6)

首先检查完全匹配。并且它在路径名上执行,它不包含哈希值,因此它可能无法执行您想要的操作。

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

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

if (document.URL.match(/.*#register$/)) {

答案 1 :(得分:2)

第二个只是检查网址是否包含#register,第一个网址路径,你也可以使用location.hash

if(location.hash=='#register') { //....

答案 2 :(得分:1)

第一个在window.location.pathname/#register之间执行完全匹配。第二个在#register中的任何位置查找document.URL

答案 3 :(得分:1)

这个if块检查字符串是否相等

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

 // Code

}

indexOf()方法返回字符串中第一次出现指定值的位置。

如果要搜索的值永远不会发生,则此方法返回-1。

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

   // Code...

}