定義
由語言本身實現,不依賴宿主對象,不用初始化即可使用的對象,我們可以理解在語言所有初始化開始之前就初始化完成的對象。一共由下面五個:
- 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));
- 舍入方法
- Math.ceil() 向上舍入
- Math.floor() 向下舍入
- 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); }
-
其他高級方法