麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 語言 > JavaScript > 正文

JavaScript包裝對象使用詳解

2024-05-06 16:23:02
字體:
來源:轉載
供稿:網友

javascript代碼運行的過程中基本類型會找到對應的包裝對象,然后包裝對象把所有的屬性和方法給了基本類型,然后包裝對象被系統進行銷毀,所以理解了包裝對象可以很好的理解之前寫的代碼為什么可以這樣做了。

JavaScript對象是一種復合值:它是屬性和已命名值的集合。通過"."符號來引用屬性值。當屬性值是一個函數時,稱為方法。

①一段你常用但卻未必明白其真正底層原理的代碼:

 

 
  1. var s = "hello world!"
  2. var word = s.substring(s.indexOf(" ")+1,s.length); 

如前面所說,這里變量s只是一個字符串原始類型,它怎么會有屬性(s.length)和方法(s.indexOf()、s.substring())呢?沒錯,這正跟我們正要介紹的包裝對象有關。原因是:只要引用了字符串s的屬性,JavaScript就會將字符串值通過調用new String(s)的方式轉換成對象,這個對象繼承了字符串(String)對象的方法,并被用來處理屬性的引用。一旦屬性引用結束,這個新創建的對象就會被銷毀。

同字符串一樣,數字和布爾值也有各自的方法:通過Number()和Boolean()構造函數創建一個臨時對象。存取字符串、數字或布爾值的屬性時創建的臨時對象就是包裝對象。5種原始類型中的剩余兩種null和undefined沒有包裝對象:訪問它們的屬性會造成一個類型錯誤(Uncaught TypeError)。明白了上面的代碼,那么再看如下代碼:

 

 
  1. var s = "test"
  2. s.len = 4;//給它設置一個屬性 
  3. var t = s.len; 

不認真的同學這里就會認為最后t就是等于4了。難道最后t不等于4嗎?是的,最后t的值是undefined。想知道為什么請看繼續看解析:原來以這里第二行代碼只是創建了一個臨時字符串對象,并給len屬性賦值為4,隨即銷毀這個對象。而第三行又是通過原始字符串s創建一個新字符串對象(這個不是第二行代碼創建的對象,第二行代碼創建的對象已經被銷毀了)并嘗試讀取其len屬相,這個屬性自然不存在,因此表達式的結果為undefined。這段代碼說明了在讀取字符串、數字和布爾值的屬性值或方法(實際上是它們對應包裝對象的屬性值或方法)表現的像對象一樣。但如果你試圖給屬性賦值,則會忽略這個操作:修改只是發生在臨時對象身上,而這個臨時對象并不會繼續保留下來。

注意:可通過String(),Number(),Boolean()構造函數來顯示創建包裝對象:

 

 
  1. var s = "test",n=1,b=true;//一個字符串、數字和布爾值 
  2. var S = new String(s);//一個字符串對象 
  3. var N = new Number(n);//一個數值對象 
  4. var B = new Boolean(b);//一個布爾對象 

JavaScript會在必要時將包裝對象轉換成原始值,因此上段代碼中的對象S、N和B常常但不總是表現的和值s、n和b一樣。"=="等于運算符將原始值和其包裝對象視為相等,但“===”全等運算將它們視為不等。通過typeof運算符也可以看到原始值和其包裝對象的不同:

 

 
  1. typeof(s);  ->"string" 
  2.  typeof(S);  ->"object" 
  3. typeof(n);  ->"string" 
  4.  typeof(N);  ->"object" 
  5. typeof(b);  ->"string" 
  6.  typeof(B);  ->"object" 

以上所述就是本文的全部內容了,希望大家能夠喜歡。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 国产男女爽爽爽爽爽免费视频 | 欧洲伊人网 | 免费久久久久 | 成年人黄色免费网站 | 亚洲午夜在线观看 | 在线播放一级片 | 曰韩精品| 国产亚洲精品视频中文字幕 | 久久亚洲美女视频 | 调教小男生抽打尿孔嗯啊视频 | 免费看性xxx高清视频自由 | 91羞羞| 国产艳妇av视国产精选av一区 | 深夜视频在线 | 爱逼av | 成人男女免费视频 | 日韩欧美激情视频 | 成人一级免费视频 | 免费人成在线观看网站 | 国产精品美女一区二区 | 日本欧美一区二区三区在线观看 | 国产午夜电影 | 日韩欧美高清一区 | 黄色免费av网站 | 成人羞羞视频在线观看免费 | 国产精品成人久久 | 国产精品久久久久久影视 | 特片网久久| 日本在线不卡一区二区 | 亚洲欧美aⅴ | 成年人免费视频播放 | 午夜影院日韩 | 国产99久久久久久免费看 | 91精品国产91久久久久久不卞 | 毛片免费大全短视频 | 激情网站免费观看 | 欧美日韩亚洲国产 | 日日摸夜夜添夜夜添牛牛 | 九色中文字幕 | 亚洲精品一区二区三区免 | 久操福利视频 |