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 escape(),encodeURI()和encodeURIComponent()使用场景