做爲參數傳入函數用null.javascript
<script>
var s="text"; //建立一個字符串
s.len=4; //給他設置一個屬性
var t=s.len;
alert(t);
</script>java
運行的時 t 的值爲undefined. 正則表達式
第二行代碼建立了一個臨時的字符串對象,並給其len屬性賦值爲4,隨即銷燬這個對象。數組
var s="hello world !"; //一個字符串函數
var word=s.substring(s.indexOf(" ")+1,s.length); //使用字符串的屬性spa
字符串不是對象怎麼會有屬性?只要引用了字符串s的屬性,javascript就會將字符串值經過new String(s)的方法換成對象,這個對象繼承了字符串的方法,並用來處理屬性的引用。一旦屬性引用結束,這個新建立的對象就會銷燬。prototype
對象:對象
除了字符串、數字、true 、false、null和undefined以外javascript中的值都是對象。繼承
對象是可變的,咱們經過引用而非值來操做對象。若是變量x是指向一個對象的引用,那麼執行 var y=x;ip
變量y的值也指向同一個引用, 經過變量y的修改,這個對象對變量x也會形成影響。
屬性特性:
writable : 代表是否能夠設置該屬性的值。
enumerable:代表是否能夠經過for/in循環返回該屬性
configurable:代表是否能夠刪除或修改該屬性。
對象特性:
對象的特性(prototype)指向另一個對象,本對象的屬性繼承自它的原型對象。
對象的類(class)是一個標識對象的字符串。
對象的擴展標記(extensiable flag)指明瞭是否能夠向該對象添加新屬性。
三類javascript對象:
內置對象(native object)數組、函數、日期、正則表達式。
宿主對象(host object)是javascript解釋器所嵌入的宿主環境。客戶端 javascript 中表示網頁結構THMLElement對象均是宿主對象
自定義對象(user-defined object)是由運行中的javascript代碼建立的對象。
兩個屬性:
自有屬性(own property)是直接在對象中定義的屬性。
繼承屬性(inherited property)是在對象的原型對象中定義的屬性。
property與attribute均可單獨理解爲屬性、property attribute是一個詞組,意爲「屬性的特性」---------可寫、可枚舉、可配置
1.建立對象
直接量:由若干名/值對組成的映射表,中間用冒號分割 , 名/值對之間用逗號分割,整個映射表用花括號括起來
對象的直接量是一個表達式,這個表達式的每次運算都建立並初始化一個新的對象
var empty={ };//沒有任何屬性的對象
var point{ x : 0 ,y : 0;} //兩個屬性
var point2={ x : point.x , y : point.y+1};
var book ={
"main title" : "javascript" , //屬性名有空格,必須用字符串表示
"sub-title" : " the one" , //屬性名裏有連字符,用字符串顯示
「 for」: " djskf" , //for是保留字用引號
author:{
firstname :" David", //這裏的屬性沒有引號
lastname : " dfd"}
};
2.經過new建立對象