深入理解JavaScript單體內(nèi)置對(duì)象
JavaScript中定義了兩個(gè)單體內(nèi)置對(duì)象:Global和Math。
Global對(duì)象
Global對(duì)象是JavaScript中最特別的一個(gè)對(duì)象。不屬于任何其他對(duì)象的屬性和方法,最終都是它的屬性和方法。實(shí)際上,沒有全局變量或全局作用域,所有在全局作用域中定義的屬性和函數(shù),都是Global對(duì)象的屬性。
Global對(duì)象包含了一些有用的方法:
1.URI編碼方法
Global對(duì)象的encodeURI()和encodeURIComponent()方法可以對(duì)URI進(jìn)行編碼,encodeURI()主要用于整個(gè)URI,而encodeURIComponent()主要用于對(duì)URI中的某一段進(jìn)行編碼。
var uri = "http://www.jb51 xxyh.com#login"; alert(encodeURI(uri)); // "http://www.jb51%20xxyh.com#login" alert(encodeURIComponent(uri)); // "http%3A%2F%2Fwww.jb51%20xxyh.com%23login"
encodeURI()不會(huì)對(duì)本身屬于URI的特殊字符進(jìn)行編碼(如,冒號(hào)、正斜杠、問號(hào)和井號(hào)),encodeURIComponent會(huì)對(duì)發(fā)現(xiàn)的任何非標(biāo)準(zhǔn)字符進(jìn)行編碼。
與encodeURI()和encodeURIComponent()對(duì)應(yīng)的有兩個(gè)解碼方法decodeURI和decodeURIComponent
var uri = "http%3A%2F%2Fwww.jb51%20xxyh.com%23login"; alert(decodeURI(uri)); // "http%3A%2F%2Fwww.jb51 xxyh.com%23login" alert(decodeURIComponent(uri)); // http://www.jb51 xxyh.com#login
其中,decodeURI()只能對(duì)使用encodeURI()替換的字符進(jìn)行解碼。decodeURIComponent能夠?qū)ncodeURIComponent()進(jìn)行解碼。
2.eval()方法
eval()只接受一個(gè)參數(shù),即要執(zhí)行的JavaScript字符串,例如:
eval("alert('hello')");
上面這行代碼等價(jià)于:
alert("hello");
當(dāng)解析器調(diào)用eval()方法時(shí),會(huì)將傳入的參數(shù)作為實(shí)際的JavaScript語句解析,然后將執(zhí)行結(jié)果插入原來的位置。通過eval()執(zhí)行的代碼被認(rèn)為是包含該次調(diào)用的執(zhí)行環(huán)境的一部分,因此被執(zhí)行的代碼具有與該執(zhí)行環(huán)境相同的作用域鏈。這意味著通過eval()執(zhí)行的代碼可以引用在包含環(huán)境中定義的變量。
var msg = "good morning"; eval("alert(msg)"); // "good morning"
同樣地,可以在eval()中定義一個(gè)函數(shù),然后再在該調(diào)用的外部引用這個(gè)函數(shù):
eval("function sayHi() {alert('hello')}");
對(duì)于變量也是一樣:
eval("var msg = 'hello world'"); alert(msg); // "hello world"
在eval()中創(chuàng)建的任何變量或函數(shù)都不會(huì)被提升,在解析代碼時(shí),它們被包含在一個(gè)字符串中;只有在eval()執(zhí)行時(shí)才創(chuàng)建。
3.window對(duì)象
JavaScript沒有指出如何直接訪問Global對(duì)象,但是web瀏覽器都是將它作為window對(duì)象的一部分加以實(shí)現(xiàn)的。因此,在全局作用域中聲明的所有變量和函數(shù),都稱為window對(duì)象的屬性。
var color = "red"; function sayColor() { alert(window.color); } window.sayColor();
上面定義了一個(gè)全局變量color和全局函數(shù)sayColor()方法,在函數(shù)內(nèi)部通過window.color來訪問color變量,說明全局變量color是window對(duì)象的屬性。然后通過window.sayColor()來調(diào)用sayColor()方法,說明sayColor()是window對(duì)象的方法。
取得Global對(duì)象的方法:
var global = function () { return this; }();
Math對(duì)象
JavaScript提供了Math對(duì)象,用于提供快速的計(jì)算功能。
1.Math對(duì)象的屬性
Math對(duì)象的屬性大多是一些數(shù)學(xué)計(jì)算中的特殊值。
2.min()和max()方法
min()和max()方法用于確定一組數(shù)值中的最小值和最大值。這兩個(gè)方法都可以接收任意多個(gè)數(shù)值參數(shù)。
var max = Math.max(4,89,65,34); alert(max); // 89 var min = Math.min(4,89,65,34); alert(min);
查找數(shù)值中的最大值和最小值,可以使用如下的方式調(diào)用apply()方法:
var values = [4,89,65,34]; var max = Math.max.apply(Math, values);
3.舍入方法
• Math.ceil():向上舍入,即進(jìn)一法,只要小數(shù)位不為0就向上取整
• Math.floor():向下舍入,即取整法,舍去小數(shù)位
• Math.round():標(biāo)準(zhǔn)舍入,即四舍五入法
示例:
alert(Math.ceil(11.4)); // 12 alert(Math.ceil(11.5)); // 12 alert(Math.ceil(11.8)); // 12 alert(Math.floor(11.4)); // 11 alert(Math.floor(11.5)); // 11 alert(Math.floor(11.8)); // 11 alert(Math.round(11.4)); // 11 alert(Math.round(11.5)); // 12 alert(Math.round(11.8)); // 12 alert(Math.ceil(-11.4)); // -11 alert(Math.ceil(-11.5)); // -11 alert(Math.ceil(-11.8)); // -11 alert(Math.floor(-11.4)); // -12 alert(Math.floor(-11.5)); // -12 alert(Math.floor(-11.8)); // -12 alert(Math.round(-11.4)); // -11 alert(Math.round(-11.5)); // -11 alert(Math.round(-11.8)); // -12
4.random()方法
Math.random()方法返回一個(gè)隨機(jī)數(shù)(0≤r<1)。
例如,獲取一個(gè)1到10之間的整數(shù):
var num = Math.floor(Math.random() * 10 + 1);
5.其他方法
Math對(duì)象還提供了一些完成各種個(gè)中簡(jiǎn)單或復(fù)雜的計(jì)算。
ECMA-262 規(guī)定了這些方法,但是不同的實(shí)現(xiàn)可能精確度不同。
以上這篇深入理解JavaScript單體內(nèi)置對(duì)象就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
- JavaScript內(nèi)置對(duì)象介紹
- Javascript基礎(chǔ)知識(shí)中關(guān)于內(nèi)置對(duì)象的知識(shí)
- JavaScript為內(nèi)置對(duì)象添加原型方法實(shí)現(xiàn)
- JavaScript常用內(nèi)置對(duì)象用法分析
- JavaScript內(nèi)置對(duì)象math,global功能與用法實(shí)例分析
- 詳解JavaScript的內(nèi)置對(duì)象
- 淺談js常用內(nèi)置方法和對(duì)象
- javascript內(nèi)置對(duì)象操作詳解
- jsp內(nèi)置對(duì)象及方法詳細(xì)介紹
- JavaScript 內(nèi)置對(duì)象屬性及方法集合
- javascript對(duì)象之內(nèi)置對(duì)象Math使用方法
- JavaScript中的內(nèi)置對(duì)象介紹
相關(guān)文章
js子頁(yè)面獲取父頁(yè)面數(shù)據(jù)示例
這篇文章主要介紹了js子頁(yè)面如何獲取父頁(yè)面數(shù)據(jù),需要的朋友可以參考下2014-05-05JavaScript設(shè)計(jì)模式策略模式案例分享
這篇文章主要介紹了JavaScript設(shè)計(jì)模式策略模式案例分享,策略設(shè)計(jì)模式就是指一個(gè)問題匹配多個(gè)解決方法,不一定要用到哪一個(gè),而且有可能隨時(shí)增加多個(gè)方案2022-06-06JavaScript清空數(shù)組元素的兩種方法簡(jiǎn)單比較
這篇文章主要介紹了JavaScript清空數(shù)組元素的兩種方法簡(jiǎn)單比較,羅列了幾種常見的情況javascript數(shù)組的方法,并且比較了其中的兩種常見方法,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-07-07深入理解javascript函數(shù)參數(shù)與閉包
函數(shù)是javascript的一等對(duì)象,想要學(xué)好javascript,就必須深刻理解函數(shù)。本文對(duì)javascript函數(shù)參數(shù)與閉包進(jìn)行詳細(xì)分析介紹。需要的朋友一起來看下吧2016-12-12JS獲取指定時(shí)間的時(shí)間戳的方法匯總(最新整理收藏版)
在JavaScript中,可以使用Date.parse()或new Date()來獲取指定時(shí)間的時(shí)間戳,本文給大家分享JS獲取指定時(shí)間的時(shí)間戳的方法,感興趣的朋友一起看看吧2024-01-01JavaScript實(shí)現(xiàn)環(huán)繞鼠標(biāo)旋轉(zhuǎn)效果
這篇文章主要為大家詳細(xì)介紹了JavaScript實(shí)現(xiàn)環(huán)繞鼠標(biāo)旋轉(zhuǎn)效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-01-01JavaScript實(shí)現(xiàn)文本框中默認(rèn)顯示背景圖片在獲得焦點(diǎn)后消失的方法
這篇文章主要介紹了JavaScript實(shí)現(xiàn)文本框中默認(rèn)顯示背景圖片在獲得焦點(diǎn)后消失的方法,涉及javascript針對(duì)頁(yè)面元素樣式及屬性的相關(guān)操作技巧,需要的朋友可以參考下2015-07-07JavaScript實(shí)現(xiàn)購(gòu)物車圖片局部放大預(yù)覽效果
這篇文章主要為大家詳細(xì)介紹了JavaScript如何通過canvas簡(jiǎn)單實(shí)現(xiàn)購(gòu)物車圖片放大預(yù)覽效果,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2023-03-03