JavaScript學習10 JS數據類型、強制類型轉換和對象屬性
JavaScript數據類型
JavaScript中有五種原始數據類型:Undefined、Null、Boolean、Number以及String。
Undefined數據類型的值只有一個:undefined。
在JavaScript中,如果函數沒有聲明返回值,那么會返回undefined。(后面有實例)。
如果typeof后面跟一個未定義的參數,也是返回undefined。
Null數據類型的值只有一個:null。
null與undefined的關系:undefined實際上是從null派生出來的。
所以:
alert(undefined == null);
彈框顯示true。
Boolean數據類型的值有兩個:true和false。
var s = false; //聲明了一個布爾值false
字符串String類型,用單引號或者雙引號都可以。
JavaScript中沒有char數據類型。
typeof運算符
typeof是一元運算符,后跟變量的名稱,用於獲取變量的數據類型,其返回值有5個:undefined、boolean、number、string以及object。
var s = "hello"; // s是原始類型 alert(typeof s) //輸出:string
另一種方式:
var s = new String("hello"); //s是對象類型 alert(typeof s) //輸出:object
對象類型的基類是Object(很像Java),所以typeof判斷出是對象類型之后不再具體說明其到底是何種對象類型。
var s = false; alert(typeof s); //輸出boolean var s = 3; alert(typeof s) //輸出number
函數無返回值的情況
在JavaScript中,如果函數沒有聲明返回值,那么會返回undefined。
function add() { return;//或者干脆不寫return } alert(add()); //彈框顯示undefined
強制類型轉換
強制類型轉換:在JavaScript中有3種強制類型轉換:
Boolean(value),Number(value),String(value)。
比較常規的:
var s = Number(3); alert(s);
轉換成布爾值:
var s = Boolean("hello"); alert(s); //顯示true
var s = String("hello"); //注意此處沒有關鍵字new,表示強制類型轉換 alert(typeof s);//輸出string //如果加上new則會輸出object
注意:強制類型轉換前面是沒有new這個關鍵字的。
對象的屬性
在JavaScript中,所有對象都是從Object對象繼承過來的。
Object中的屬性是不可枚舉的(propertyIsEnumerable返回false),因此無法
通過for…in語句得到其中的屬性。
var object = new Object(); for(var v in object) { alert(v); } //沒有彈框,因為沒有可枚舉的屬性 alert(object.propertyIsEnumerable("prototype"));//返回false
動態管理屬性
在JavaScript中,可以動態添加對象的屬性,也可以動態刪除對象的屬性。
var object = new Object(); alert(object.username); //undefined //添加屬性 object["username"] = "shengsiyuan"; //object.username= "shengsiyuan"; //兩種方式都可以動態添加屬性username alert(object.username); //顯示定義的name屬性 //刪除屬性 delete object.username; // username屬性已經從object對象中刪除 alert(object.username);//undefined
定義對象的另一種方式:
以屬性來定義對象:
// 在JavaScript中定義對象的最常見的方式 var object = {username: "zhangsan", password: 123}; alert(object.username); alert(object.password);
參考資料
聖思園張龍老師Java Web視頻教程。
W3School JavaScript教程:http://www.w3school.com.cn/js/index.asp
英文版:http://www.w3schools.com/js/default.asp
