摘要:單體內置對象單體內置對象就是開發人員不必顯式地實例化內置對象,因為他們已經實例化了。前面的章節討論過了大多數內置對象,還定義了兩個單體內置對象和。
單體內置對象
單體內置對象就是開發人員不必顯式地實例化內置對象,因為他們已經實例化了。前面的章節討論過了大多數內置對象,ECMA-262 還定義了兩個單體內置對象:Global 和Math。
Global 對象所有在全局作用域中定義的屬性和函數,都是Global 對象的屬性。
URI 編碼方法encodeURI()、encodeURIComponent()、decodeURI()、decodeURIComponent()方法。如下:
var uri = "http://www.bai du.com"; console.log(encodeURI(uri)); console.log(encodeURIComponent(uri)); /* [Log] http://www.bai%20du.com (repetition.html, line 16) [Log] http%3A%2F%2Fwww.bai%20du.com (repetition.html, line 17) */ var uri = "http%3A%2F%2Fwww.bai%20du.com"; console.log(decodeURI(uri)); console.log(decodeURIComponent(uri)); /* [Log] http%3A%2F%2Fwww.bai du.com (repetition.html, line 16) [Log] http://www.bai du.com (repetition.html, line 17) */eval 方法(防止代碼注入,應該謹慎使用)
這個方法就是一個完整的解析器,它只接受一個參數,即要執行的ECMAScript(JavaScript)字符串。被執行的代碼具有與該執行環境相同的作用域鏈。這意味著通過eval()執行的代碼可以引用在包含環境中定義的變量,且在該方法中創建的任何變量或者函數都不會被提升。如:
eval("function hi(){console.log("hi")}"); hi(); var num = 100; eval("document.write(num);"); eval("var num = 110;"); document.write(num);
謹慎使用!
特別是他在執行用戶數據輸入的情況下,后果可能非常嚴重。
下面的網頁列出Global 對象的所有屬性:
JavaScript Global 對象
EFMAScript 雖然沒有給出如何直接訪問Global 對象,但是Web 瀏覽器都是將這個全局對象作為window 對象的一部分加以實現的。因此,在全局作用域中聲明的所有變量和函數,都成為了window 對象的屬性。如:
var color = "red"; var func = function(){ document.write("func function"); }; console.log(window.color); //red window.func(); //func function
創建一個立即調用的函數表達式:
var global = function(){ document.write("func") }(); ( function(){ document.write("func") } )();
上下兩種都可以。具體以后討論函數表達式。
Math 對象ECMAScript 還為保存了數學公式和信息提供了一個公共位置,即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 的平方根即2 的平方根的倒數)
Math.SQRT2(2 的平方根)
min()和max()方法這兩個方法對于確定一組數值中的最小和最大值非常好用。兩個方法都可以接收任意多個數值。如:
var maxValue = Math.max(321,3,1); console.log(maxValue); //321
那么如何提取出數組里面的最大值或最小值呢?
var valuesArray = [32,13,214,32,5432,1]; var maxValue = Math.max.apply(this,valuesArray); document.write(maxValue); //5432
使用apply()方法可以很輕松的改變this 值。可以將任何數組座位第二個參數。
又如:
var valuesArray = [1,321,21,3,3]; function sum(){ console.log(arguments.length); var max = Math.max.apply(this,arguments); console.log(max); } sum.apply(this,valuesArray);舍入方法
Math.ceil()、Math.floor()、Math.round()三個方法分別遵循下面的規則:
Math.ceil()(向上舍入)
Math.round()(標準舍入-四舍五入)
Math.floor()(向下舍入)
random()方法Math.random()方法返回大于等于0 小于1 的一個隨機數。如:
console.log(Math.random());
可以利用某個整數范圍內隨機選擇一個數值:
值 = Math.floor(Math.random() * 可能的值的總數 + 第一個可能的值);
比如想要隨機選擇一個1-10之間的隨機數,就可以寫成:
var num = Math.floor(Math.random() * 10 + 1);
如果是想隨機選擇一個2-4之間的隨機數,就可以寫成:
var num = Math.floor(Math.random() * 3 + 2);
也可以通過一個函數來自動生成隨機數,不必計算可能的值的范圍。如:
function selectFrom(lowerValue,upperValue){ return Math.floor(Math.random() * (upperValue - lowerValue + 1) + lowerValue); }
通過上面這個函數,可以隨機訪問Array 的數值。如:
var valuesArray = ["BMW","Audi","Benz"]; function selectFrom(lowerValue,upperValue){ return Math.floor(Math.random() * (upperValue - lowerValue + 1) + lowerValue); } var selectValue = valuesArray[selectFrom(0,valuesArray.length - 1)]; console.log(selectValue);其他方法
見JavaScript Math 對象
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/86243.html
摘要:單體內置對象對內置對象的定義是由實現提供的不依賴于宿主環境的對象,這些對象在程序執行之前就已經存在了。還定義了兩個單體內置對象和。此外,所有原生引用類型的構造函數,像和,也都是對象的屬性。 單體內置對象 ECMA-262 對內置對象的定義是「由 JavaScript 實現提供的、不依賴于宿主環境的對象,這些對象在 JavaScript 程序執行之前就已經存在了」。意思就是說,開發人員不...
摘要:題外話最近在看高級程序設計這本書,面對著多頁的厚書籍,心里有點壓力,所以我決定梳理一下。。全局環境的關閉是頁面關閉或者瀏覽器關閉,而局部環境的關閉是指函數結束。數值范圍最大和最小的范圍是超出范圍的數字如何表示是一個特殊的值。 題外話 最近在看《JavaScript高級程序設計》這本書,面對著700多頁的厚書籍,心里有點壓力,所以我決定梳理一下。。探究一下到底怎么讀這本書。本書的內容好像...
摘要:題外話最近在看高級程序設計這本書,面對著多頁的厚書籍,心里有點壓力,所以我決定梳理一下。。全局環境的關閉是頁面關閉或者瀏覽器關閉,而局部環境的關閉是指函數結束。數值范圍最大和最小的范圍是超出范圍的數字如何表示是一個特殊的值。 題外話 最近在看《JavaScript高級程序設計》這本書,面對著700多頁的厚書籍,心里有點壓力,所以我決定梳理一下。。探究一下到底怎么讀這本書。本書的內容好像...
摘要:題外話最近在看高級程序設計這本書,面對著多頁的厚書籍,心里有點壓力,所以我決定梳理一下。。全局環境的關閉是頁面關閉或者瀏覽器關閉,而局部環境的關閉是指函數結束。數值范圍最大和最小的范圍是超出范圍的數字如何表示是一個特殊的值。 題外話 最近在看《JavaScript高級程序設計》這本書,面對著700多頁的厚書籍,心里有點壓力,所以我決定梳理一下。。探究一下到底怎么讀這本書。本書的內容好像...
摘要:棧區由編譯器自動分配釋放,存放函數的參數值,局部變量的值等。其操作方式類似于數據結構中的棧。屬性返回對創建此對象的構造函數的引用。所有的和都是宿主對象參考高級程序設計堆和棧的概念和區別全面解析中的數據類型與類型轉換 數據類型 數據類型劃分 javascript中定義了6中基本數據類型(原始值類型),和一種復雜數據類型(引用類型),所謂復雜類型,其本質是由無序的名值對(key:val...
閱讀 1101·2021-11-24 10:24
閱讀 2589·2021-11-22 13:54
閱讀 997·2021-09-24 09:55
閱讀 3599·2019-08-30 15:54
閱讀 1316·2019-08-30 15:44
閱讀 1093·2019-08-30 14:23
閱讀 3201·2019-08-29 13:45
閱讀 1279·2019-08-29 11:19