国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 網站 > WEB開發 > 正文

JavaScript內置對象--單體內置對象(Global、Math)詳解

2024-04-27 15:06:40
字體:
來源:轉載
供稿:網友

一、什么是單體內置對象?

官方對于"單體"二字其實沒有顯性的表達,看了很多書籍和大牛的網站,都是含糊兩口,其實就我自己也沒完全搞清楚這個幾個名詞,“引用類型”,“單體”內置對象,"內置對象"這些詞的區別,按介紹說,內置對象是不依賴于宿主環境的對象,這些對象在程序執行之前就已經存在了,開發人員不必顯示地實例化內置對象,因為它們已經實例化了。簡而言之,單體內置對象是不需要通過new來實例化的,例如我們的string可以new,但是Math是不要new的,因為可以直接使用Math的API。

Global類

Global對象是javaScript中最特別的一個對象。不屬于任何其他對象的屬性和方法,最終都是它的屬性和方法。實際上,沒有全局變量或全局作用域,所有在全局作用域中定義的屬性和函數,都是Global對象的屬性。一、URI編碼方法1.encodeURI()/encodeURIComponent() : 這兩個方法用于對URI進行編碼,有效的URI中不能包含某些字符,例如空格。他們用特殊的UTF-8編碼替換所有無效的字符,從而讓瀏覽器能夠接受和理解。encodeURI(): 這個方法用于整個URI(例如,http://www.wrox.com/illegal  value.html)進行編碼encodeURIComponent() : 這個方法只對URI中的每一段(例如: illegal  value.html)進行編碼這兩個方法的區別是:encodeURI()不會對本身屬于URI的特殊字符進行編碼,例如冒號、正斜杠、問號、井字號encodeURIComponent()則會對它發現的任何非標準字符進行編碼var uri = "http://www.wrox.com/illegal value.html#start";//"http://www.wrox.com/illegal%20value.html#start"   空格變成了%20console.log(encodeURI(uri));   //"http%3A%2F%2Fwww.wrox.com%2illegal%20value.html%23start"  冒號、正斜杠、問號、井字號都被轉碼console.log(encodeURIComponent(uri));  2.decodeURI()與decodeURIComponent() : 這兩個方法是與encodeURI()/encodeURIComponent()對應的兩個方法,是對這兩個方法進行解碼,decodeURI()只能對encodeURI()解碼,decodeURIComponent()只能對encodeURIComponent()解碼二、eval()方法eval()方法支接收一個參數,即要執行的Javascript字符串,舉個例子:eval(alert("hello"));這段代碼的執行結果等同于alert("hello")當解析器調用eval()方法時,會將傳入的參數作為實際的JavaScript語句解析,然后將執行結果插入原來的位置。通過eval()執行的代碼被認為是包含該次調用的執行環境的一部分,因此被執行的代碼具有與該執行環境相同的作用域鏈。這意味著通過eval()執行的代碼可以引用在包含環境中定義的變量,舉個例子:var msg="hello world";eval("alert(msg)");   //"hello world"可見,變量msg是在eval()調用的環境之外定義的,但其中調用的alert()仍然能夠顯示"hello world"同樣地,可以在eval()中定義一個函數,然后再在該調用的外部引用這個函數:eval("function sayHi(){ alert ("h1")}");  sayHi();函數sayHi()是在eval()內部定義的,但由于對eval()的調用最終會被替換成定義函數的實際代碼。注意:在eval()中創建的任何變量或函數都不會被提升,在解析代碼時,它們被包含在一個字符串中;只有在eval()執行時才創建。三、window對象JavaScript沒有指出如何直接訪問Global對象,但是web瀏覽器都是將它作為window對象的一部分加以實現的。因此,在全局作用域中聲明的所有變量和函數,都稱為window對象的屬性。var color="red";function sayColor(){alert(window.color);}window.sayColor(); //"red"上面定義了一個全局變量color和全局函數sayColor()方法,在函數內部通過window.color來訪問color變量,說明全局變量color是window對象的屬性。然后通過window.sayColor()來調用sayColor()方法,說明sayColor()是window對象的方法。另一種取得Global對象的方法是使用以下代碼:var global = function(){return this;}();this的值等于Global對象

Math類

Math對象是專門封裝數學計算的常量和API的對象,不能new,直接使用!!一、Math對象的屬性最常使用到的無非就是Math.PI了二、min()和max()方法min()和max()方法用于確定一組數值中的最小值和最大值。var max=Math.max(3,54,32,16);console.log(max);    //54var min=Math.min(3,54,32,16);console.log(min);   //3三、舍入方法Math.ceil() : 執行向上舍入,它總將數值向上舍入為最接近的整數Math.floor() : 執行向下舍入,它總將數值向下舍入為最接近的整數Math.round() : 執行四舍五入,它總將數值四舍五入為最接近的整數console.log(Math.ceil(25.9)); //26console.log(Math.ceil(25.5)); //26console.log(Math.ceil(25.1)); //26 console.log(Math.floor(25.9));   //25console.log(Math.floor(25.5));   //25console.log(Math.floor(25.1));  //25console.log(Math.round(25.9));   //26console.log(Math.round(25.5));   //26console.log(Math.round(25.1));  //25舍入的比較:1.Math.ceil()/Math.floor()    VS    str.parseInt()前者的參數是number,且必須用Math調用,而且不能去掉以字符串結尾的非數字字符后者的參數是string,是專門用來去掉字符結尾的非數字字符那問題來了,如果遇到"25.67abc" 我們該怎么轉換為整數數字?首選使用parseFloatvar text = parseFloat("25.67abc");console.log(text);   //262.Math.round()     VS   toFixed()前者必須用Math調用,且只能取整數,返回值是一個number,可以直接算數計算后者可以被任何數字類型的值調用,返回值是一個string,要先轉換為number在來計算四、 Math.random()方法Math.random() : 返回值是一個大于等于0小于1的一個隨機數,這個方法經常在開發中使用,專門用來隨機生產一個數字的方法公式: 值 = Math.floor(Math.random()*可能值的總數+第一個可能的值)使用Math.floor的原因是因為Math.random() 總返回一個小數值舉個例子,如果你想選取1~10之間的數值,可以這樣寫:var num = Math.floor(Math.random()*10+1);總共有10個可能的值,而第一個可能是1。如果想要一個介于2~10之間的數值,可以這樣寫:var  num =Math.floor(Math.random()*9+2);總共有9個可能的值,而第一個可能是2。五、其他方法Math對象中還包含了一些與完成各種簡單或復雜計算有關的方法:三角函數相關的方法:
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 沂南县| 曲沃县| 包头市| 永年县| 郸城县| 安吉县| 商南县| 龙门县| 军事| 建湖县| 南投县| 安义县| 文登市| 武胜县| 乐都县| 洪雅县| 临潭县| 克什克腾旗| 呼和浩特市| 漳浦县| 德令哈市| 礼泉县| 建阳市| 益阳市| 尖扎县| 行唐县| 龙口市| 石门县| 普安县| 水城县| 子洲县| 浪卡子县| 清苑县| 临夏县| 桃园县| 龙泉市| 工布江达县| 长春市| 肇源县| 海南省| 独山县|