天天躁日日躁狠狠躁AV麻豆-天天躁人人躁人人躁狂躁-天天澡夜夜澡人人澡-天天影视香色欲综合网-国产成人女人在线视频观看-国产成人女人视频在线观看

Javascript Global對象

Global對象

Global對象是ECMAScript中最特別的對象,因為實際上它根本不存在。如果嘗試編寫下面的代碼,將得到錯誤:

錯誤消息顯示Global不是對象,但剛才不是說Global是對象嗎?沒錯。這里需要理解的主要概念是,在ECMAScript中,不存在獨立的函數,所有函數都必須是某個對象的方法。本書前面介紹的函數,如isNaN()、isFinite()、parseInt()和parseFloat()等,看起來都像獨立的函數。實際上,它們都是Global對象的方法。而且Global對象的方法不止這些。

encodeURI()和encodeURIComponent()方法用于編碼傳遞給瀏覽器的URI(統一資源標識符)。有效的URI不能包含某些字符,如空格。這兩個方法用于編碼URI,這樣用專門的UTF-8編碼替換所有的非有效字符,就可以使瀏覽器仍能夠接受并理解它們。

encodeURI()方法用于處理完整的URI(例如,http://www.wrox.com/illegal value.htm),而encodeURIComponent()用于處理URI的一個片斷(如前面的URI中的illegal value.htm)。這兩個方法的主要區別是encodeURI()方法不對URI中的特殊字符進行編碼,如冒號、前斜杠、問號和英鎊符號,而encodeURIComponent()則對它發現的所有非標準字符進行編碼。例如:

這段代碼輸出兩個值:

可以看到,除空格外,第一個URI無任何改變,空格被替換為%20。第二個URI中的所有非字母數字字符都被替換成它們對應的編碼,基本上使這個URI變得無用。這就是encodeURI()可以處理完整URI,而encodeURIComponent()只能處理附加在已有URI末尾的字符串的原因。

自然,還有兩個方法用于解碼編碼過的URI,即decodeURI()和decodeURIComponent()。如你所料,這兩個方法所做的恰與其對應的方法相反。decodeURI()方法只對用encodeURI()方法替換的字符解碼。例如,%20將被替換為空格,而%23不會被替換,因為它表示的是英鎊符號(#),encodeURI()并不替換這個符號。同樣的,decodeURIComponent()會解碼所有encodeURIComponent()編碼過的字符,意味著它將對所有的特殊值解碼。例如:

這段代碼輸出兩個值:

在這個例子中,變量uri存放的是用encodeURIComponent()編碼的字符串。生成的值說明了應用兩個解碼方法時會發生的事情。第一個值由decodeURI()輸出,把%20替換成空格。第二個值由decodeURIComponent()輸出,替換所有的特殊。

這些URI方法encodeURI()encodeURIComponent()decodeURI()decodeURICom- ponent()代替了BOM的escape()unescape()方法。URI方法更可取,因為它們會對所有Unicode符號編碼,而BOM方法只能對ASCII符號正確編碼。盡量避免使用escape()unescape()方法。

最后一個方法可能是整個ECMAScript語言中最強大的方法,即eval()方法。該方法就像整個ECMAScript的解釋程序,接受一個參數,即要執行的ECMAScript(或JavaScript)字符串。例如:

這行代碼的功能等價于下面的代碼:

當解釋程序發現eval()調用時,它將把參數解釋為真正的ECMAScript語句,然后把它插入該函數所在的位置。這意味著eval()調用內部引用的變量可在參數以外定義:

這里,變量msg是在eval()調用的環境外定義的,而警告仍然顯示的是文本"hello world",因為第二行代碼將被替換為一行真正的代碼。同樣,可以在eval()調用內部定義函數或變量,然后在函數外的代碼中引用:

這里,函數sayHi()是在eval()調用內部定義的。因為該調用將被替換為真正的函數,所以仍可在接下來的一行中調用sayHi()。

這種功能非常強大,不過也非常危險。使用eval()時要極度小心,尤其在給它傳遞用戶輸入的數據時。惡意的用戶可能會插入對站點或應用程序的安全性有危害的值(叫做代碼注入)。

Global對象不只有方法,它還有屬性。還記得那些特殊值undefined、NaN和Infinity嗎?它們都是Global對象的屬性。此外,所有本地對象的構造函數也都是Global對象的屬性。下表較詳細地說明了Global對象的所有屬性:

屬    性

說    明

undefined

Undefined類型的字面量

NaN

非數的專用數值

Infinity

無窮大值的專用數值

Object

Object的構造函數

Array

Array的構造函數

Function

Function的構造函數

Boolean

Boolean的構造函數

String

String的構造函數

Number

Number的構造函數

Date

Date的構造函數

RegExp

RegExp的構造函數

Error

Error的構造函數

EvalError

EvalError的構造函數

RangeError

RangeError的構造函數

ReferenceError

ReferenceError的構造函數

SyntaxError

SyntaxError的構造函數

TypeError

TypeError的構造函數

URIError

URIError的構造函

JavaScript技術Javascript Global對象,轉載需保留來源!

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

主站蜘蛛池模板: 久久热免费视频 | 动漫美女被到爽了流 | 秋霞三级理伦免费观看 | 久久精品国产在热亚洲 | 国产AV综合手机在线观看 | 老熟风间由美AV在线一区二区 | 护士一级片| 美女内射少妇一区二区四区 | 中文字幕免费在线视频 | 欧美另类摘花hd | www.色小姐| 国产午夜三区视频在线 | 亚洲黄色三级视频 | 国产在线综合色视频 | 伊人网青青草 | 漂亮的保姆5电影免费观看完整版中文 | 一区二区三区国产亚洲网站 | 暖暖 免费 高清 日本视频大全 | 日本内射精品一区二区视频 | 国产精品AV无码免费播放 | 国产一区二区三区内射高清 | 女教师跟黑人男朋友激情过后 | 亚洲无遮挡无码A片在线 | 欧美eee114 | 好吊妞在线成人免费 | 国产在线观看成人免费视频 | 亚洲午夜精品aaa级久久久久 | 在线亚洲国产日韩欧洲专区 | qvod在线观看 | 人妻洗澡被强公日日澡 | 最近中文字幕高清中文 | 久久免费看少妇高潮A片特爽 | poronovideos动物狗猪 | 老师的玉足高跟鞋满足我 | 精品夜夜澡人妻无码AV | 月夜直播免费观看全集 | 99热久久这里只精品国产WWW | 孕妇bbwbbwbbwbbw超清 | 国产一卡在线观看完整版 | 大香交伊人 | 久久亚洲精选 |