Global对象
很多人都是不知道这个Global对象的,因为Global对象是一个全局对象,Global对象中封装的方法不需要对象引用就直接可以调用
特点:
全局对象,这个Global中封装的方法不需要对象直接可以调用
- 格式: 方法名();
方法:
-
encodeURI()
- 将字符串进行URI编码
-
decodeURI()
- 对URI编码进行一个解码,解码为一个对应实际内容的字符串
-
encodeURIComponent
- 将字符串进行URI编码
- 此方法中可编码的字符要比encodeURI()方法的可变码字符多
-
decodeURI()
- 对URI编码进行一个解码, 此方法中解码的字符要比decodeURI()方法的解码字符要多
那么这里我们为什么要对字符串进行URI编码?(其实就是转换为URL编码)
因为我们最终的时候前端要向后端传输数据的时候要通过网络通信协议(eg:HTTP协议)进行数据的传输, 但是我们使用网络通信协议传输数据的时候并不支持中文数据的传输, 这个时候我们中文数据如果想要从客户端传输到服务器中,就需要把中文的数据先进行一个转码动作, 我们一般转码的时候都是转化为URL编码( 我们的浏览器中默认支持的就是URL编码)
- 那么我们如何将我们的中文数据转换为对应的URL编码?
- 我们就可以调用上面的encodeURI()方法
- 那么中文数据具体是如何进行URL编码的?
- 比如一个中文"你好"
- 我们先会将这个中文转为对应的二进制编码 --> 这一步就与我们的中文数据的编码字符集是有关的, 我们使用不同的编码字符集,这个时候对应的编码就会不一样, 就比如如果我们使用的是UTF-8编码字符集, 这个时候我们的一个中文是占用了3个字节的单位, 如果这个时候我们使用的是GBK, 这个时候我们的一个中文就是占用了2个字节
- 假如这个时候我们的编码字符集是GBK,那么"你好"就一共是占用了四个字节,假如这个时候我们编码之后的结果是: 10001010 10001011 10001010 10001010
- 我们这个时候就会每四位转换一个十六进制的字符(我们的一个字节就是8为,四位就可以转换为一个十六进制的字符), 即:8A8B8A8A
- 然后我们会每个字节(也就是两位十六进制数值)之前加一个%, 然后就得到了我们的对应中文字符的URL编码, 即%8A%8B%8A%8A
- 比如一个中文"你好"
-
parseInt()
- 将参数转为整数数值
- 逐一判断每个字符是不是数字,知道判断到不是数字为止,将前面的数值转换为number, 如果开头就直接是字符,则直接返回一个NaN
-
isNaN()
- 判断一个值是不是NaN
- 那么这里我们为什么还要使用一个专门的isNaN()方法来判断一个值是不是NaN? 我们不可以直接使用比较运算符判断我们的一个值是不是NaN?
- 我们的NaN是六亲不认的, 连自己都不认, 只要是NaN参与的==(等于)判断运算的结果都是false , 就算NaN == NaN的执行结果也是一个false
- 那么这里我们为什么还要使用一个专门的isNaN()方法来判断一个值是不是NaN? 我们不可以直接使用比较运算符判断我们的一个值是不是NaN?
- 判断一个值是不是NaN
-
eval()
- 将javascript字符串解析, 并把它作为脚本代码来执行
- eg: eval(3 + 2); 这个时候其实就是执行了这个3+2的操作,我们会得到一个5