最詳細的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的所有屬性
在這裏插入圖片描述

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對象爲保存數學公式和信息提供了公共的位置,我們在這裏只學習一些基本的應用:

  • 屬性
    在這裏插入圖片描述
  • 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() 四捨五入
    在這裏插入圖片描述
  • 隨機數方法

    使用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);
    }
    
  • 其他高級方法
    在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章