JS中數據類型
* - String 字符串
* - Number 數值
* - Boolean 布爾值
* - Null 空值
* - Undefined 未定義
* - 以上這五種類型屬於基本數據類型,以後我們看到的值
* 只要不是上邊的5種,全都是對象
* - Object 對象
*
*
* 基本數據類型都是單一的值"hello" 123 true,
* 值和值之間沒有任何的聯繫。
*
* 在JS中來表示一個人的信息(name gender age):
* var name = “孫悟空”;
* var gender = “男”;
* var age = 18;
* 如果使用基本數據類型的數據,我們所創建的變量都是獨立,不能成爲一個整體。
*
* 對象屬於一種複合的數據類型,在對象中可以保存多個不同數據類型的屬性。
*
* 對象的分類:
* 1.內建對象
* - 由ES標準中定義的對象,在任何的ES的實現中都可以使用
* - 比如:Math String Number Boolean Function Object…
*
* 2.宿主對象
* - 由JS的運行環境提供的對象,目前來講主要指由瀏覽器提供的對象
* - 比如 BOM DOM
*
* 3.自定義對象
* - 由開發人員自己創建的對象
*
*/
//創建對象
/*
* 使用new關鍵字調用的函數,是構造函數constructor
* 構造函數是專門用來創建對象的函數
* 使用typeof檢查一個對象時,會返回object
*/
var obj = new Object();
/*
* 在對象中保存的值稱爲屬性
* 向對象添加屬性
* 語法:對象.屬性名 = 屬性值;
*/
//向obj中添加一個name屬性
obj.name = "孫悟空";
//向obj中添加一個gender屬性
obj.gender = "男";
//向obj中添加一個age屬性
obj.age = 18;
/*
* 讀取對象中的屬性
* 語法:對象.屬性名
*
* 如果讀取對象中沒有的屬性,不會報錯而是會返回undefined
*/
//console.log(obj.gender);
//console.log(obj.hello);
/*
* 修改對象的屬性值
* 語法:對象.屬性名 = 新值
*/
obj.name = "tom";
/*
* 刪除對象的屬性
* 語法:delete 對象.屬性名
*/
delete obj.name;
console.log(obj.age);
-----------------------------js中對象的屬性值--------------------------
var obj = new Object();
/*
* 向對象中添加屬性
* 屬性名:
* - 對象的屬性名不強制要求遵守標識符的規範
* 什麼亂七八糟的名字都可以使用
* - 但是我們使用是還是儘量按照標識符的規範去做
*
*/
obj.name = "孫悟空";
//obj.var = "hello";
/*
* 如果要使用特殊的屬性名,不能採用.的方式來操作
* 需要使用另一種方式:
* 語法:對象["屬性名"] = 屬性值
* 讀取時也需要採用這種方式
*
* 使用[]這種形式去操作屬性,更加的靈活,
* 在[]中可以直接傳遞一個變量,這樣變量值是多少就會讀取那個屬性
*
*/
obj["123"] = 789;
obj["nihao"] = "你好";
var n = "nihao";
//console.log(obj["123"]);
/*
* 屬性值
* JS對象的屬性值,可以是任意的數據類型
* 甚至也可以是一個對象
*/
obj.test = true;
obj.test = null;
obj.test = undefined;
//創建一個對象
var obj2 = new Object();
obj2.name = "豬八戒";
//將obj2設置爲obj的屬性
obj.test = obj2;
//console.log(obj.test.name);
/*
* in 運算符
* - 通過該運算符可以檢查一個對象中是否含有指定的屬性
* 如果有則返回true,沒有則返回false
* - 語法:
* "屬性名" in 對象
*/
//console.log(obj.test2);
//檢查obj中是否含有test2屬性
//console.log("test2" in obj);
//console.log("test" in obj);
console.log("name" in obj);
k