javascript包裝對象的用法
js對象是一種複合值:它是屬性或已命名值得集合。
參考以下代碼:
var s = "hello world";var len = th;
在該例子中,s是字符串,而字符串不是對象,但為何會有屬性呢?其實只要引用了字符串s的屬性,js就會將字符串通過調用new String(s)的方式轉換為對象,該對象繼承了字符串的方法,並被用來處理屬性的引用;一旦屬性引用結束,這個新創建的對象就會被銷燬(在實現上並不一定創建或銷燬這個臨時對象,但整個過程看來是這樣)。
同字符串一樣,數字和布爾值也具有各自的方法:通過Number()單核Boolean()構造函數創建臨時對象,這些方法的調用都是來自於這個臨時對象;然而null和undefined沒有包裝對象:訪問他們的屬性會造成類型錯誤。
比如以下代碼:
var s0 = "hello world"; = 100;var t = ; //t的值將為undefined
因為第2行創建臨時對象後,立即將其銷燬;第三行通過原始的字符串值創建一個新字符串對象,嘗試讀取其len屬性,自然不存在。這段代碼説明在讀取字符串、數字和布爾值的屬性值或方法時,表現的'像對象一樣。但如果你試圖給其屬性賦值,則會忽略這個操作:修改只是發生在臨時對象上,而這個臨時對象並未繼續保留下來。
存取字符串、數字或布爾值的屬性時臨時創建臨時對象稱為包裝對象。
我們可以顯示建立一個字符串對象然後增添它的屬性,自然該屬性會一直保留下來:
var str = "hello world";var objs = new String(str); = 100;var t = ; //t將被賦值為100
js會在必要時將包裝對象轉換為原始值因此顯示創建的對象和其對應的原始值常常但不總是表現的一樣。==運算符將原始值和其包裝對象視為相等;但===全等運算符將他們視為不等;另外通過typeof運算符可以看到原始值和包裝對象的不同。
希望本文所述對大家的javascript程序設計有所幫助。
-
JavaScript 函數表達式
JavaScript中創建函數主要有兩種方法:函數聲明和函數表達式。這兩種方式都有不同的適用場景。這篇筆記主要關注的是函數表達式的幾大特點以及它的使用場景,下面一一描述。主要特點可選的函數名稱函數名稱是函數聲明的必需組成部分,這個函數名稱相當於一個變量,新定...
-
HTML5教程:畫布Canvas基礎知識講解
Canvas是HTML5最讓人期待的特性之一,目前已獲得大部分Web瀏覽器支持Canvas可以幫助創建遊戲、增強圖形用户界面。下面YJBYS小編為大家帶來畫布Canvas基礎知識,希望對大家學習有所幫助!HTML5規範引進了很多新特性,其中最令人期待的之一就是Canvas元素。HTML5Canvas...
-
有關JavaScript中的prototype.bind()方法介紹
以前,你可能會直接設置self=this或者that=this等等,這樣做當然也能起作用,但是使用()會更好,看上去也更專業。下面舉個簡單的例子:複製代碼代碼如下:varmyObj={specialFunction:function(){},anotherSpecialFunction:function(){},getAsyncData:function(cb){cb();}...
-
網頁設計的佈局
網頁設計的工作目標,是通過使用更合理的顏色、字體、圖片、樣式進行頁面設計美化,在功能限定的情況下,儘可能給予用户完美的視覺體驗。以下是小編為您帶來的網頁設計的佈局,看看吧!網頁設計的佈局11、響應式網頁設計響應式網頁設計是網頁設計的一種技術,可在N多種瀏...