為了便於操作基本型別值,ecmascript提供了3個特殊的應用型別:boolean、number和string。這些型別和其他引用型別相似,但具有與各自基本型別相應的特殊行為。每當讀取乙個基本型別值時,後台會建立乙個對應的基本包裝型別的物件。一般在後台都會進行這樣的處理:
(1)建立boolean/number/string型別的乙個例項;
(2)在例項上呼叫指定的方法;
(3)銷毀這個例項。
下面舉個例子:
var s1="some text";
var s2=s1.substring(2);
實際上可以想象成下列ecmascript**:
var s1=new string("some text");
var s2=s1.substring(2);
s1=null;
【注意】引用型別與基本包裝型別的主要區別是物件的宣告週期。
對於使用new操作符建立的引用型別的例項,在執行流離開當前作用域之前都是一直儲存在記憶體中,而自動建立的基本包裝型別的物件,則只存在於一行**的執行瞬間,然後立即被銷毀。這意味著不能在執行時為基本包裝型別值新增屬性和方法。
如下面例子:
var s1="some text";
s1.color="red";
alert(s1.color);//undefined
雖然第二行中為s1新增了乙個color屬性,但是在第三行**中再訪問s1時,其color屬性已經不存在,這是因為第二行建立的string物件在執行第三行**時已經被銷毀,第三行又建立了自己的string物件,而該物件沒有color屬性。
【注意】使用new呼叫基本包裝型別的建構函式,與直接呼叫同名的轉型函式是不一樣的。
如下:
var value=25;
var number=number(value);//轉型函式
alert(typeof number);//"number"
var obj=new number(value);//建構函式
alert(typeof obj);//"object"
重拾 堅持 沉澱
大約有將近1年左右沒有更新部落格,期間有考慮過每個月或每週花些時間來分享最近所學 所得 但總由於一些原因導致時間被占用 久而久之就漸漸淡忘了寫部落格這件事。現在回想起來感覺還是有一些後悔。其實,時間擠擠總是有的,哪怕每週一小時,乙個月下來,也能梳理出幾篇部落格。再或許是工作一定年限後,那股勁淡去了,...
重拾青藏夢
事隔一年許,才有機會靜下心來,慢慢回憶當年的青藏騎行,並記錄成文。遲遲不願動筆,一是文筆不好,有些回憶是值得留藏心裡,細細品嚐,怕寫出來會變了味,不知所謂 二是工作繁忙,著實沒那份閒情。但我又想寫點什麼,有些成長,不應該只是在記憶中埋藏。青藏線上,充滿了太多的不確定因素,嚴寒,冰雹,缺氧,高原狼,無...
重拾JSP JSP入門
1 當 input 的 type 為 hidden 時,稱其為隱藏域,隱藏域在頁面中對於使用者是不可見的,在表單中插入隱藏域的目的在於收集或傳送資訊,以利於被處理表單的程式所使用。瀏覽者單擊傳送按鈕傳送表單的時候,隱藏域的資訊也被一起傳送到伺服器。2 jsp 在處理提交過來的表單資訊前,使用 req...