欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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

程序员文章站 2024-01-15 12:46:58
...

定义

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

  • 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高级教程(十四)单体内置对象

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高级教程(十四)单体内置对象
  • 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高级教程(十四)单体内置对象
  • 随机数方法

    使用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高级教程(十四)单体内置对象