内置对象:
有ECMAScript实现提供的,不依赖 宿主环境的对象,在代码执行前就已经存在的。
例如:String,Array,Object
以及ES5定义的Global和Math
一.Global
Global(全局对象),事实上没有全局变量或全局函数,所有在全局作用域下定义的属性和函数都是Global对象的属性。
1.URI编码方法
为何对URI进行编码?
因为我们一般向后台传送的如
name1=value1&name2=value2;
其实是将其转化为ASCII码后,计算机解读的。
3D:= 来判断name和value的分离
26:& 来判断参数间的分离
但是会有问题如果name中带有&时就会发生解析错误
如:na&me1=hcd&name2=h;
哪些字符需要进行编码?
1)空格:Url在传输的过程,或者用户在排版的过程,或者文本处理程序在处理Url的过程,都有可能引入无关紧要的空格,或者将那些有意义的空格给去掉。
2)引号以及<>:引号和尖括号通常用于在普通文本中起到分隔Url的作用
3)#:通常用于表示书签或者锚点
4)%:百分号本身用作对不安全字符进行编码时使用的特殊字符,因此本身需要编码
5){}|\^[]`~:某一些网关或者传输代理会篡改这些字符
如何编码:
1)encodeURI()
主要用于整个的URI编码,并且不会对本身就属于URI的特殊字符编码,如冒号,斜杠
var str = "http://www.baidu.com/illage value.html#start";
alert(encodeURI(str))
//http://www.baidu.com/illage%20value.html#start
将空格编码为%20
用decodeURI进行解码
2)encodeURIComponent()
主要用于对URI的某一段进行编码,换替换所有的而非英文和数字字符。
var str = "http://www.baidu.com/illage value.html#start";
console.log(encodeURIComponent(str))
//http%3A%2F%2Fwww.baidu.com%2Fillage%20value.html%23start
所以我们一般对illage value.html进行编码,将空格转码,
用decodeURIComponent进行解码。
我们用encodeURIComponent()更多一些。
2.eval()方法
会直接解析()内的代码
eval("var str = 'hcd'");
console.log(str)//"hcd"
var str = 'hcd';
eval(console.log(str))//"hcd"
但是严格模式下会出错。
并且可能有安全问题。
3.window对象
ECMAScript虽然没有指出如何直接访问Global对象,但是Web浏览器都是将这个对象作为window对象的一部分加以实现的。
二.Math对象
1.取最大值
Math.max(0,1,1,2,5.3,5,5.5)//5.5
2.取最小值
Math.min(0,1,1,2,5.3,5,5.5)//0
3.四舍五入
Math.ceil(2.2)//3 向上取整
Math.floor(2.5)//2 向下取整
Math.round(2.5)//3 四舍五入
4.随机
Math.random() 取0到1之间的随机数