軟體測試學習教程—JavaScript內建物件

千鋒教育官方發表於2019-08-15


內建物件的定義是:“由 ECMAScript 實現提供的、不依賴宿主環境的物件,這些物件在 ECMAScript 程式執行之前就已經存在了。” ECMA-262 只定義了兩個內建物件: Global Math

 

Global 物件

Global( 全域性 ) 物件是 ECMAScript 中一個特別的物件,因為這個物件是不存在的。在 ECMAScript 中不屬於任何其他物件的屬性和方法,都屬於它的屬性和方法。所以,事實上,並不存在全域性變數和全域性函式;所有在全域性作用域定義的變數和函式,都是 Global 物件的屬性和方法。

 

內建的屬性和方法:

 

URI 編碼方法

URI 編碼可以對連結進行編碼,以便傳送給瀏覽器。它們採用特殊的 UTF-8 編碼替換所有無效字元,從而讓瀏覽器能夠接受和理解。

encodeURI() 不會對本身屬於 URI 的特殊字元進行編碼,例如冒號、正斜槓、問號和 # 號;而 encodeURIComponent() 則會對它發現的任何非標準字元進行編碼

var b = '//Test ';

alert(encodeURI(b));                                        // 只編碼了中文

 

var b = '//Test ';

alert(encodeURIComponent(b));                 // 特殊字元和中文編碼了

 

一般來說 encodeURIComponent() 使用頻率要高一些。

 

使用了 URI 編碼過後,還可以進行解碼,透過 decodeURI() decodeURIComponent() 來進行解碼

 

var b = '//Test ';

alert(decodeURI(encodeURI(b)));               // 還原            

      

var b = '//Test ';

alert(decodeURIComponent(encodeURIComponent(b)));           // 還原

 

 

eval() 方法

eval() 方法主要擔當一個字串解析器的作用,他只接受一個引數,而這個引數就是要執行的 JavaScript 程式碼的字串。

eval('var b = 100');                                    // 解析了字串程式碼

alert(b);

eval('alert(100)');                                      

 

eval('function b() {return 123}');                 // 函式也可以

alert(b());

 

eval() 方法的功能非常強大,但也非常危險。因此使用的時候必須極為謹慎。特別是在使用者輸入資料的情況下,非常有可能導致程式的安全性,比如程式碼注入等等。

 

Global 物件屬性

Global 物件包含了一些屬性: undefined NaN Object Array Function 等等。

alert(Array);                                                    // 返回建構函式

 

 

window 物件

Web 瀏覽器可以使用 window 物件來實現一全域性訪問。

alert(window.Array);                                       

 

 

Math 物件

ECMAScript 還為儲存數學公式和資訊提供了一個物件,即 Math 物件。

 

Math 物件的屬性

Math 物件包含的屬性大都是數學計算中可能會用到的一些特殊值。

 

 

 

Math.E

自然對數的底數,即常量 e 的值

Math.LN10

10 的自然對數

Math.LN2

2 的自然對數

Math.LOG2E

2 為底 e 的對數

Math.LOG10E

10 為底 e 的對數

Math.PI

∏的值

Math.SQRT1_2

1/2 的平方根

Math.SQRT2

2 的平方根

 

alert(Math.E);                                                  //

alert(Math.LN10);

alert(Math.LN2);

alert(Math.LOG2E);

alert(Math.LOG10E);

alert(Math.PI);

alert(Math.SQRT1_2);

alert(Math.SQRT2);                                          //

 

min() max() 方法

Math.min() 用於確定一組數值中的最小值。 Math.max() 用於確定一組數值中的最大值。

alert(Math.min(21,14,31,16,43,85,70,19,36));                          // 最小值

alert(Math.max(41,17,82,30,11,29,26,10,37,25));                     // 最大值

 

舍入方法

Math.ceil() 執行向上舍入,即它總是將數值向上舍入為最接近的整數;

Math.floor() 執行向下舍入,即它總是將數值向下舍入為最接近的整數;

Math.round() 執行標準舍入,即它總是將數值四捨五入為最接近的整數;

alert(Math.ceil(25.9));                                      //26

alert(Math.ceil(25.5));                                      //26

alert(Math.ceil(25.1));                                      //26

 

alert(Math.floor(25.9));                                    //25

alert(Math.floor(25.5));                                    //25

alert(Math.floor(25.1));                                    //25

 

alert(Math.round(25.9));                                          //26

alert(Math.round(25.5));                                          //26

alert(Math.round(25.1));                                          //25

 

random() 方法

Math.random() 方法返回介於 1 之間一個隨機數,不包括 1 。如果想大於這個範圍的話,可以套用一下公式:

= Math.floor(Math.random() * 總數 + 第一個值 )

 

alert(Math.floor(Math.random() * 10 + 1));        // 隨機產生 1-10 之間的任意數

for (var i = 0; i<10;i ++) {

       document.write(Math.floor(Math.random() * 10 + 5));             //5-14 之間的任意數

       document.write('<br />');

}

 

 


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69914734/viewspace-2653801/,如需轉載,請註明出處,否則將追究法律責任。

相關文章