【JavaScript】JavaScript 全局,瞭解一下?

JavaScript 全局

  • 全局屬性
    • Infinity 代表正的無窮大的數值
    • NaN 指示某個值是不是數字值
    • undefined 指示未定義的值
  • 全局函數
    • encodeURI() 把字符串編碼爲 URI 編碼後的 url 仍可以直接用於請求

      不編碼字符~ ! @ # $ & * ( ) = : / , ; ? + '
      該方法能避開對用於URL裏使用特殊字符編碼,包括# ? & = : /
      使用 encodeURI() 對 URL 編碼後的字符串還是有效的URL,所以發送有空格等不屬於 url 定義語法裏的字符,可以用 encodeURI() 來做編碼轉換

    • decodeURI() 解碼某個編碼的 URI

    • encodeURIComponent() 把字符串編碼爲 URI 組件 編碼後的 url 不可以直接用於請求

      不編碼字符- _ . ! ~ * ' ( )
      和 encodeURI() 不同,encodeURIComponent() 會對用於定義 URL 的字符# ? & = : /等做編碼,所以 encodeURIComponent() 編碼後的 url 不可以直接用於請求

      應用場景
      對 url 裏的查詢參數做編碼,例如可以對參數爲 url 的值做編碼轉換
      注意 因爲 encodeURIComponent() 不會對單引號'做編碼轉換,所以建議字符串裏用到單引號的地方使用雙引號
      另外也可以在 encodeURIComponent() 編碼後再把單引號等字符轉換爲對應的編碼

    • decodeURIComponent() 解碼一個編碼的 URI 組件

    • escape() 對字符串進行編碼

      不編碼字符 @ * / +
      該方法從 ECMAScript 3 開始就被廢棄,建議不要使用

    • unescape() 對由 escape() 編碼的字符串進行解碼

    • eval() 計算 JavaScript 字符串,並把它作爲腳本代碼來執行

    • isFinite() 檢查某個值是否爲有窮大的數

    • isNaN() 檢查某個值是否是數字

    • Number() 把對象的值轉換爲數字

    • parseFloat() 解析一個字符串並返回一個浮點數

    • parseInt() 解析一個字符串並返回一個整數

    • String() 把對象的值轉換爲字符串

talk is cheap, show me the code.

舉些例子

let url ='http://showdoc.itplh.com/web/#/4?page_id=10&token=123+456[; / ? : @ & = + $ , #]'
let encode_url = window.encodeURI(url)
let encode_url2 = window.encodeURIComponent(url)
console.log('encodeURI', encode_url)
console.log('encodeURIComponent', encode_url2)
console.log('decodeURI', decodeURI(encode_url))
console.log('decodeURIComponent', decodeURIComponent(encode_url2))

let str = 'hello world'
let escape_str = window.escape(str)
console.log('escape', escape_str)
console.log('unescape', unescape(escape_str))

輸出

encodeURI http://showdoc.itplh.com/web/#/4?page_id=10&token=123+456%5B;%20/%20?%20:%20@%20&%20=%20+%20$%20,%20#%5D

encodeURIComponent http%3A%2F%2Fshowdoc.itplh.com%2Fweb%2F%23%2F4%3Fpage_id%3D10%26token%3D123%2B456%5B%3B%20%2F%20%3F%20%3A%20%40%20%26%20%3D%20%2B%20%24%20%2C%20%23%5D

decodeURI http://showdoc.itplh.com/web/#/4?page_id=10&token=123+456[; / ? : @ & = + $ , #]

decodeURIComponent http://showdoc.itplh.com/web/#/4?page_id=10&token=123+456[; / ? : @ & = + $ , #]

escape hello%20world

unescape hello world

參考

JavaScript 全局

JavaScript escape(),encodeURI()和encodeURIComponent()使用場景

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章