標籤:字串 ons cccccc rds 語言 物件導向語言 代碼 search undefined
JavaScript封裝對象
近日有時間,閑下來好好學習原生js
JavaScript是一門物件導向語言,使用”.”就可以訪問對象的屬性和方法,而基本類型(null, undefined, bool, number, string)應該是實值型別,怎麼會有屬性和方法。
但是
var s="string";console.log(s.length);//6console.log(s.indexOf(‘i‘));//3
於是去翻閱資料
JavaScript可以很靈活的將一種類型轉換為另一種了類型,當引用了字串s的屬性,JavaScript就會將字串值通過調用new String(s)的方式轉換成對象,這個對象繼承了字串的方法並用來處理屬性的引用。上面代碼在使用的實際上是String對象的length屬性和indexOf方法,一旦屬性引用結束,這個新建立的對象就會銷毀。
這也是頻繁處理字串效率低的一個原因。
String
String對象擁有很多方法
charAt
charCodeAt
concat
fromCharCode
indexOf
lastIndexOf
match
replace
search
slice
split
substr
substring
toLowerCase
toUpperCase
var s=‘string‘;s.words=6;console.log(s.words);
執行這段代碼,輸出結果是undefined。
第二行,調用s字串的屬性,於是JavaScript建立一個臨時字串對象,並對該words屬性賦值,隨後銷毀這個對象。
第三行,嘗試讀取s的屬性,又會建立一個新的臨時字串對象,這個對象自然沒有words屬性。
在讀取字串的屬性值的識貨,表現得像對象一樣,但如果你給其賦值,則會被忽略。修改只是發生在臨時對象上,而這個對象隨後會被銷毀。
存取字串,數字或布爾值的屬性時建立的臨時對象稱為“封裝對象”
js學習筆記之封裝對象