JavaScript內(nèi)置對象 內(nèi)置對象的定義是:“由ECMAScript實現(xiàn)提供的、不依賴宿主環(huán)境的對象,這些對象在ECMAScript程序執(zhí)行之前就已經(jīng)存在了。”ECMA-262只定義了兩個內(nèi)置對象:Global和Math。 Global對象 Global(全局)對象是ECMAScript中一個特別的對象,因為這個對象是不存在的。在ECMAScript中不屬于任何其他對象的屬性和方法,都屬于它的屬性和方法。所以,事實上,并不存在全局變量和全局函數(shù);所有在全局作用域定義的變量和函數(shù),都是Global對象的屬性和方法。 內(nèi)置的屬性和方法: URI編碼方法 URI編碼可以對鏈接進行編碼,以便發(fā)送給瀏覽器。它們采用特殊的UTF-8編碼替換所有無效字符,從而讓瀏覽器能夠接受和理解。 encodeURI()不會對本身屬于URI的特殊字符進行編碼,例如冒號、正斜杠、問號和#號;而encodeURIComponent()則會對它發(fā)現(xiàn)的任何非標準字符進行編碼 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()方法主要擔當一個字符串解析器的作用,他只接受一個參數(shù),而這個參數(shù)就是要執(zhí)行的JavaScript代碼的字符串。 eval('var b = 100'); //解析了字符串代碼 alert(b); eval('alert(100)'); eval('function b() {return 123}'); //函數(shù)也可以 alert(b()); eval()方法的功能非常強大,但也非常危險。因此使用的時候必須極為謹慎。特別是在用戶輸入數(shù)據(jù)的情況下,非常有可能導致程序的安全性,比如代碼注入等等。 Global對象屬性 Global對象包含了一些屬性:undefined、NaN、Object、Array、Function等等。 alert(Array); //返回構(gòu)造函數(shù) window對象 Web瀏覽器可以使用window對象來實現(xiàn)一全局訪問。 alert(window.Array); Math對象 ECMAScript還為保存數(shù)學公式和信息提供了一個對象,即Math對象。 Math對象的屬性 Math對象包含的屬性大都是數(shù)學計算中可能會用到的一些特殊值。
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()用于確定一組數(shù)值中的最小值。Math.max()用于確定一組數(shù)值中的最大值。 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()執(zhí)行向上舍入,即它總是將數(shù)值向上舍入為最接近的整數(shù); Math.floor()執(zhí)行向下舍入,即它總是將數(shù)值向下舍入為最接近的整數(shù); Math.round()執(zhí)行標準舍入,即它總是將數(shù)值四舍五入為最接近的整數(shù); 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()方法返回介于0到1之間一個隨機數(shù),不包括0和1。如果想大于這個范圍的話,可以套用一下公式: 值 = Math.floor(Math.random() * 總數(shù) + 第一個值) alert(Math.floor(Math.random() * 10 + 1)); //隨機產(chǎn)生1-10之間的任意數(shù) for (var i = 0; i<10;i ++) { document.write(Math.floor(Math.random() * 10 + 5)); //5-14之間的任意數(shù) document.write('<br />'); } |
|