简单介绍:
说明: 内置对象就是不依赖宿主环境在程序执行之前已经存在的对象,不必显式的实例化内置对象,前面已经介绍了大部分内置对象,而Global和Math两个单体内置对象比较特殊,所以单独讲.
Global对象:
说明: Js中不属于任何其它对象的属性和方法,最终都是它的属性和方法,事实上没有全局变量和全局函数,所有的全局作用域中定义的属性和函数都是Global对象的属性如之前的isNaN(),isFinite(),parseInt(),parseFloat()实际上全都是Global对象的方法,除此之外还有一些常用的方法
1. 编码解码
说明: URI编码可以对链接进行编码,以便发送给浏览器,即采用特殊的UTF-8编码替换所有无效字符,从而让浏览器能够接受和理解
/* * encodeURI() - 不会对本身属于URI的特殊字符进行编码,例如冒号,正斜杠,问号和# */encUriOne = encodeURI('http://xmdevops.blog.51cto.com/')console.log(encUriOne)// 部分解码console.log(decodeURI(encUriOne))/* * encodeURIComponent()() - 会对本身属于URI的特殊字符进行编码,例如冒号,正斜杠,问号和# */encUriTwo = encodeURIComponent('http://xmdevops.blog.51cto.com/')console.log(encUriTwo)// 完全解码console.log(decodeURIComponent(encUriTwo))
2.二次解析
说明: 主要担当一个字符串解析器的作用,只接受一个参数,这个参数就是Js代码字符串
// eval - 支持函数eval('function love(){ return "love"}')console.log(love())// eval - 支持表达式eval('var func = "love"')console.log(func)// eval - 支持代码eval('alert("love")')
注意: eval()方法功能非常强大,但也非常危险,因此使用时要极为谨慎,特别是用户输入数据的情况下,非常有可能导致程序的安全性,比如代码注入
3. 对象属性
说明: Global对象包含一些属性:undefined, NaN, Infinity, Object, Array, Function, Boolean, String, Number
4. window说明: Global没法直接访问,而Web浏览器可以使用window对象来实现全局访问(其实Global对象是作为window对象的一部分加一实现)
Math对象:
说明: Math保存数学公式和信息提供的一个对象,与我们在Js中直接编写计算功能相比,Math对象提供的计算功能执行起来要快的多
对象属性 | 说明 |
PI | 派的值 |
SQRT2 | 2的平方根 |
SQRT1_2 | 2的平方根的倒数 |
对象方法 | |
min(val1....valN) | 获取一组数值中的最小值,返回最小的值 |
max(val2...valN) | 获取一组数值中的最大值,返回最大的值 |
ceil(val) | 获取大于ceil的最小整数 |
floor(val) | 获取小于ceil的最大整数 |
round(val) | 获取四舍五入后的最接近的整数 |
random() | 获取0-1之间的随机数,但不包括0和1 |
abs(val) | 返回val的绝对值 |
pow(val, power) | 返回val的power次幂 |
sqrt(val) | 返回val的平方根 |
/* * 获取最大最小值 */var arr = [1, 2, 3, 4, 5, 6, 7, 8]console.log( Math.min.apply(Math, arr), Math.max.apply(Math, arr))/* * 获取随机值(随机值 = Math.floor(Math.random()*最大值+最小值)) */var arr = ['red', 'green', 'blue', 'yellow', 'black', 'purple', 'brown']function randIndex(total, start){ return Math.floor(Math.random()*total+start)}var color = arr[randIndex(arr.length, 0)]console.log(color)