javascript類型系統 Window對象學習筆記,javascript學習筆記

來源:互聯網
上載者:User

javascript類型系統 Window對象學習筆記,javascript學習筆記

window對象是Web瀏覽器中javascript的一個終極兜底兒對象,在範圍中處於最末端,是一個包含所有對象的對象。所有在全域範圍中定義的屬性和函數都是window對象的屬性

var myStringVar = 'myString';var myFunctionVar = function(){};console.log('myStringVar' in window);//trueconsole.log('myFunctionVar' in window);//true
 

1、引用

  通常有兩種引用window對象的方法。第一種是簡單引用賦予window對象的名稱;第二種是在全域範圍中使用this關鍵字

var foo ='bar';windowRef1 = window;windowRef2 = this;console.log(windowRef1,windowRef2);//輸出window對象的引用console.log(windowRef1.foo,windowRef2.foo);//'bar' 'bar' 

2、特性

  window對象是隱式的,通常不顯式引用;即使window對象顯式聲明,它也是隱式的,因為window對象在範圍鏈中是最後一個

//window.alert()和alert()語句基本上是相同的var foo = {//window對象在這裡是隱式的,window.foo fooMethod: function(){  alert('foo' + 'bar');//window對象在這裡是隱式的,window.alert  window.alert('foo' + 'bar');//顯式調用window對象,效果一樣 }}foo.fooMethod();//window對象在這裡是隱式的,window.foo.fooMethod()

3、屬性
  window對象共有18個屬性

undefined NaN Infinity Boolean String Number Object Array Function Date RegExp Error EvalError RangeError ReferenceError SyntaxError TypeError URIError 

[注意]禁止給undefined、NaN和Infinity賦值

 4、方法

  Javascript附帶一些預定義函數,被認為是window對象的方法

1)、編碼方法

encodeURI():對整個URI進行編碼,用特殊的UTF-8替換所有無效的字元

encodeURI()的不編碼字元有82個:

! # $ & ' ( ) * + , - . / : ; = ? @ _ ~ 0-9 a-z A-Z
encodeURIComponent():對URI的某一段進行編碼(常用於GET方法傳遞參數),用特殊的UTF-8替換所有無效的字元

  一般來說,使用encodeURIComponent()比encodeURI()要多,因為在實踐中更常見的是查詢字串參數而不是對基礎URI編碼。encodeURIComponent()的不編碼字元有71個:

!  ' ( ) * - . _ ~ 0-9 a-z A-Z
escape():對字串進行編碼,將字元的unicode編碼轉化為16進位序列

  ES3中反對escape()的使用,並建議用encodeURI和encodeURIComponent代替,不過escape()依然被廣泛的用於cookie的編碼,因為escape()恰好編碼了cookie中的非法字元並且對路徑中常出現的“/”不進行編碼。escape()的不編碼字元有69個:

* + - . / @ _ 0-9 a-z A-Z
decodeURI():解碼encodeURI()

decodeURIComponent():解碼encodeURIComponent()

unescape():解碼escape()

var uri = "http://www.wrox.com/illegal value.htm#start";console.log(encodeURI(uri));//http://www.wrox.com/illegal%20value.htm#startconsole.log(encodeURIComponent(uri));//http%3A%2F%2Fwww.wrox.com%2Fillegal%20value.htm%23startconsole.log(escape(uri));//http%3A//www.wrox.com/illegal%20value.htm%23startvar uri = 'http%3A%2F%2Fwww.wrox.com%2Fillegal%20value.htm%23start';console.log(decodeURI(uri));//http%3A%2F%2Fwww.wrox.com%2Fillegal value.htm%23startconsole.log(decodeURIComponent(uri));//http://www.wrox.com/illegal value.htm#startconsole.log(unescape(uri));//http://www.wrox.com/illegal value.htm#start

eval()

  eval()方法像一個完整的ECMAScript解析器,只接受一個參數,即要執行的JavaScript字串。當解析器發現代碼中調用eval()方法時,它會將傳入的參數當作實際的ECMAScript語句來解析,然後把執行結果插入到原位置。eval()方法能夠解釋字串的能力非常強大,但也非常危險。當用它執行使用者輸入資料時,可能會有惡意使用者輸入威脅網站或應用程式字元的代碼,就是所謂的代碼注入

  [注意]在strict 模式下,外部存取不到eval()中建立的任何變數或函數,為eval賦值也會導致錯誤 

2)、數字方法

  Window對象下還有isFinite()、isNaN()、parseFloat()、parseInt()這四個關於數位方法

以上就是本文的全部內容,希望對大家的學習有所協助。

您可能感興趣的文章:
  • JavaScript中的Window視窗對象
  • Javascript 陷阱 window全域對象
  • js window.event對象詳盡解析
  • javascript window對象屬性整理
  • 判定對象是否為window的js代碼
  • JavaScript的document對象和window對象詳解
  • javascript Window及document對象詳細整理
  • JS window對象的top、parent、opener含義介紹

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.