0
从昨天开始的问题的后续类型。我有一个哈希值改变值,需要隔离下半年。下面的代码工作,但如果没有值,则需要返回false,因为我稍后使用if (val.length){}
,并且它当前始终为真。所以,以证明:JavaScript隔离散列值
var hash = window.location.hash,
page = hash.split('=')[0],
val = hash.substr(hash.indexOf('=') + 1);
console.log(hash,page,val);
localhost/#work
console returns: #work, #work, #work
localhost/#work=misery
console returns: #work=misery, #work, misery
我想它返回:
localhost/#work
console returns: #work, #work, (no value for val)
localhost/#work=misery
console returns: #work=misery, #work, misery
感谢您的帮助!
好一点。我的头太远了,不再是人。所以这个就像你解释的那样工作,返回undefined,但是现在当它未定义时,val.length在我的控制台中抛出一个错误(Uncaught TypeError:无法读取未定义的属性'length')。我应该使用替代方法.length()?我试图确定的是:如果除了哈希还有一个值,那么等等。 – technopeasant
因为'val'是未定义的,所以你可以简单地拥有:'if(val){/ *做某事* /}'。注意,这将适用于所有的虚假值,即使你有'localhost /#work ='(即'等于'符号但没有值),这意味着你的情况。 – ZER0
请注意,如果您有一个场景需要在给定值时执行不同的操作,但是这个场景是空的,并且根本没有给出该值,这也很有用。 – ZER0