JavaScript 全域物件

JavaScript 提供一個全域物件,它包含一組全域使用的屬性、函式和物件,無需使用命名空間。 這些屬性包括: Infinity NaN undefined 這些函式包括: decodeURI() decodeURIComponent() encodeURI() encodeURIComponent() eval() isFinite() isNaN() parseFloat() parseInt() 以下為這些物件: Array Boolean Date Function JSON Math Number Object RegExp String Symbol 以及以下錯誤類型: Error EvalError RangeError ReferenceError SyntaxError TypeError URIError 我在JavaScript 錯誤參考文章中描述了這些錯誤。 現在我們來介紹一下全域屬性和函式。 Infinity Infinity 在 JavaScript 中代表無窮大。 要獲得負無窮大,可使用-運算子:-Infinity。 這些值等同於 Number.POSITIVE_INFINITY 和 Number.NEGATIVE_INFINITY。 將任何數字加上 Infinity,或將 Infinity 乘以任何數字,結果仍為 Infinity。 NaN 全域的 NaN 值代表非數字。它通常由零除以零、無效的 parseInt() 執行或其他運算返回。 parseInt() //NaN parseInt('a') //NaN 0/0 //NaN 特別注意的是,NaN 值永遠不等於任何其他 NaN 值。必須使用 isNaN() 全域函式來檢查值是否為 NaN。...

如何使用 JavaScript 編碼 URL

如果您需要將 URL 作為 GET 請求的一部分發送,那麼您可能需要將其編碼。 在 JavaScript 中,該如何編碼 URL? 根據您的需求,有兩個 JavaScript 函數可以幫助您。 第一個是 encodeURI(),第二個是 encodeURIComponent()。 注意:您可能會讀到 escape() 的相關資訊,但它已被棄用,不應使用。 這兩種方法在編碼哪些字符方面有所不同。 具體來說,encodeURI() 不會編碼 ~!@#$&*()=:/,;?+,而 encodeURIComponent() 則不會編碼 -_.!~*'(),而編碼其他所有字符。它們之間的區別是為了不同的用途: encodeURI() 用於編碼完整的 URL。 encodeURIComponent() 用於編碼單個 URL 參數值。 如果要對完整的 URL 調用 encodeURIComponent(),因為它會編碼 /,URL 路徑分隔符也將被編碼(以及其他內容): encodeURI("http://example.com/ hey!/") //"http://example.com/%20hey!/" encodeURIComponent("http://www.example.org/a file with spaces.html") //"http%3A%2F%2Fexample.com%2F%20hey!%2F" MDN 提出了一個改進方案,以符合 RFC 3986 標準,使用以下函數實現: const fixedEncodeURIComponent = (str) => { return encodeURIComponent(str).replace(/[!'()\*]/g, (c) => { return '%' + c.charCodeAt(0).toString(16) }) } 您可以將它應用於要添加到 URL 中的每個參數。...