search

Home  >  Q&A  >  body text

javascript - location.href + '' 有何用意

url = location.href + '';

在 uri.js 中看到这么一句,有点疑惑,为什么不直接 location.href 而再 concat 一下。location.href 应总是返回字符串才对?

是否已经存在一些情况,某些浏览器的某些版本返回的并不是字符串,从而做了以上处理?

大家讲道理大家讲道理2901 days ago400

reply all(1)I'll reply

  • 巴扎黑

    巴扎黑2017-04-10 14:38:22

    更新:首先必須明確的一點是,類庫的寫作與一般程序是不同的。一般程序只需確保標準變化不大的時候能正常工作,類庫還需要確保使用該類庫的程序不會因爲類庫而無法工作。

    我們用類庫是爲了方便,是爲了提高程序的健壯程度,而不是引入新的 bug。


    正文:

    沒錯,location.href 应总是返回字符串,這是常識。常識來自經驗,而經驗受到侷限性的緣故,並不總是可靠。

    簡單地說,什麼時候出了新標準,假如 location.href 不是 String 而是 URIString 類型,那麼原先的假設全部泡湯。

    這是一個習慣問題。這樣做是爲了確保無論新舊瀏覽器,只要支持 location.href,並且可以隱式轉換爲 String 類型,就不會出錯。

    而不是說,所有我見過的瀏覽器都沒錯啊。那你沒見過的呢?

    作爲類庫作者,健壯纔是最重要的。

    reply
    0
  • Cancelreply