最详细的JavaScript高级教程(十四)单体内置对象

定义

由语言本身实现,不依赖宿主对象,不用初始化即可使用的对象,我们可以理解在语言所有初始化开始之前就初始化完成的对象。一共由下面五个:

  • Object
  • Array
  • String
  • Global
  • Math

Global的方法

全局对象,可以认为是终极对象,所有不属于其他对象的属性和函数都是全局对象的函数。它有下面这些方法:

  • isNaN()
  • isFinite()
  • parseInt()
  • parseFloat()
  • URI编码方法,用于编码URI中例如空格这种不能包含的字符为编码值
    // encodeURI 智能对uri中不合法的字符进行编码,不会编码本身属于URI的字符
    // encodeURIComponent 对所有特殊字符进行编码
    // 基于encodeURIComponent对于所有字符进行编码的特性,我们通常只对于一段字符串进行编码而不是对这个uri使用这个方法
    var uri = 'http://www.baidu.com/hi lorry';
    alert(encodeURI(uri)); //http://www.baidu.com/hi%20lorry
    alert(encodeURIComponent(uri)); //http%3A%2F%2Fwww.baidu.com%2Fhi%20lorry
    
  • URI解码方法
    // 注意下面的两个方法都应该和编码方法成对使用
    // 如果混用,则不能得到正确的编解码值
    decodeURI() //encodeURI方法的逆方法
    decodeComponentURI() //encodeURIComponent的逆方法
    
  • 编译器方法 eval()
    // 使用eval方法可以将参数中的代码直接放到环境中运行
    // 这个方法十分的危险,严格模式虽然允许这个方法,但是不允许eval中的环境与外部环境交换变量值
    // 即外部访问不到eval中定义的变量或者函数
    eval('alert("hi")'); //弹框显示hi
    

Global的属性

下面的图列出了Global的所有属性
最详细的JavaScript高级教程(十四)单体内置对象_第1张图片

Global的获取

在ES的标准里没有规定Global对象应该如何获取,但是在实际的使用中我们还是要获取这个对象。在浏览器中,window对象就是Global对象的扩展,其中实现了Global对象,任何定义的函数,定义的属性都是window对象的属性和方法,可以通过window对象获取

var s = 'hi';
alert(window.s); // hi

另一种获取Global对象的方法是使用this,让一个函数返回this就是返回了全局对象

var global = function() {
    return this;
};
var s = 'hello';
alert(global().s); // hello

Math 对象

Math对象为保存数学公式和信息提供了公共的位置,我们在这里只学习一些基本的应用:

  • 属性
    最详细的JavaScript高级教程(十四)单体内置对象_第2张图片
  • min和max(用于在if中确定一组数据的最大最小值)
    // max的使用
    alert(Math.max(1, 5, 3)); // 5
    // 这里我们看一个技巧
    // 之前的使用是吧所有的值作为参数传入方法中
    // 当我们已经有一个存着所有数字的数组的时候要求最大值
    // 使用下面的方法
    var arr = [1, 5, 3];
    alert(Math.max.apply(Math, arr));
    
  • 舍入方法
  1. Math.ceil() 向上舍入
  2. Math.floor() 向下舍入
  3. Math.round() 四舍五入
    最详细的JavaScript高级教程(十四)单体内置对象_第3张图片
  • 随机数方法

    使用Math.random()方法可以获得0-1之间的一个随机数,通常我们获取随机数使用下面的方法

    // 注意下面的第一个可能的值就是起始值
    值 = Math.floor(Math.random() * 可以值的总数 + 第一个可能的值)
    // 比如我们要500-2000之间的随机数
    // 值的总数1500 第一个可能的值是500
    var num = Math.floor(Math.random() * 1500 + 500);
    alert(num);
    

    我们来写一个标准的获取两个值之间随机数的方法

    function selectFrom(lowerValue, upperValue) {
        var choices = upperValue - lowerValue + 1; // 获取其中的可能值的个数 3-1=2 一共三个值
        return Math.floor(Math.random() * choices + lowerValue);
    }
    
  • 其他高级方法
    最详细的JavaScript高级教程(十四)单体内置对象_第4张图片

你可能感兴趣的:(JavaScript高级编程)