Javascript 无法将VueJS 2哈希解析为空字符串

Javascript 无法将VueJS 2哈希解析为空字符串,javascript,hash,ecmascript-6,vuejs2,vue-router,Javascript,Hash,Ecmascript 6,Vuejs2,Vue Router,我目前正在努力确定url中是否存在哈希,并得到一些奇怪的结果。使用url(例如)运行时,将显示以下代码http://localhost:8080/subscriberstest 正确运行并作为测试输出,这是完美的,但当我只是请求http://localhost:8080/subscribers 它显示为哈希:。我最初的想法很简单。$route.query.hash==根据chrome开发工具,这是正确的。但这里有点奇怪,因为与null和undefined或'undefined'检查一起出现的都与

我目前正在努力确定url中是否存在哈希,并得到一些奇怪的结果。使用url(例如)运行时,将显示以下代码http://localhost:8080/subscriberstest 正确运行并作为测试输出,这是完美的,但当我只是请求http://localhost:8080/subscribers 它显示为哈希:。我最初的想法很简单。$route.query.hash==根据chrome开发工具,这是正确的。但这里有点奇怪,因为与null和undefined或'undefined'检查一起出现的都与我的if语句不匹配

 mounted: function () {
  if (this.$route.query.hash === '' || this.$route.query.hash === 'undefined' || this.$route.query.hash === null) {
    console.log(this.$route.hash)
    console.log(this.$route)
    console.log('grabbing auth')
  } else {
    console.log(this.$route.hash)
    console.log(this.$route)
    console.log('attempting redirect')
  }
}
控制台输出,显示为正在尝试重定向:

有人能找出我做错了什么吗

编辑:


使用if this.$route.query.hash{还提供了相同的奇数结果,其中if语句从未验证为true。

问题在于if语句,请将if设置为:

if (this.$route.hash) {
        console.log('grabbing auth')
      } else {
        console.log('attempting redirect')
        }
您是否尝试从语句中删除.query


还要注意的是,如果您没有完全强制刷新,而不仅仅是添加一个测试,然后接受url,那么您将导致dom刷新,但不会导致路由器更新,这就是为什么您从控制台获得奇怪的结果。如果您执行了完全刷新,例如从其他网站返回或来自其他网站,那么它将解析正确。

===null为false。这是你的问题吗?或者你能澄清一下吗?你的null/未定义检查在哪里?你的问题不清楚。布尔===false让我用更多信息更新它。添加了更多信息。@thanksd no我的问题是为什么空值不能被断言为空字符串或其他任何东西,尽管它显示为empdev tools中的ty字符串。此语句始终验证为false,这就是我发布SO的原因。只需发送一个返回为尝试重定向的空字符串,然后尝试向其发送一个返回为尝试重定向的哈希来验证这一点。