<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title></title>
<script type="text/javascript">
/**
* 在js中 所有的東西都是對象 類似與java中的Map<String,Object>
*
* 屬性名一定是字符串
*
* 創建對象的幾種方式
* 第一種 基於object
* 第二種 簡寫形式{key:val}
*
*
* 給對象添加屬性和賦值的時候:
* 添加屬性的兩種方式 如果原來存在對應的屬性 則表示更新對應屬性的值
* . 用點號的形式直接添加屬性
* [] 用中括號的形式添加屬性
*
* 當訪問屬性的時候 如果該對象不存在對應的屬性 則返回undefined
*
*
*/
var user = new Object({"id":123});
user.username = 'lisi';
user['age'] = 20;
user.say = function(msg){
alert(msg)
};
console.log(user);
console.log(user.username)
console.log(user['age'])
user['username'] = 'zhangsan';
console.log(user.username);
//對象的屬性刪除
delete user.age;
//user.say("Hello")
console.log(user['age']);
console.log("-------------------")
/**
* 點號的形式 user.key 不會去解析key的具體值 而是直接去得到對應對象里面的建為key的值
* [] user[key] 會解析key的具體值 常用作屬性的動態獲取
*/
for(var key in user){
console.log(user[key]);
}
console.log("---------JSON---------")
/**
* 簡寫形式
* JSON JavaScript原生對象 數據交換格式
* 鍵不能重復 如果鍵 是一個完整的單詞 可以直接寫 如果鍵里面包含了空格 要用引號引起來
* @type {{city: string, province: string}}
*/
var address = {
"city":"成都",
province:'四川',
aaa:{
name:'Test',
value:{
value:"123"
}
},
bbb:[{
name:"lisi"
},{
name:"zhangsan"
},{
name:"wangwu"
}],
say:function(){
}
};
console.log(address.aaa['value'].value)
</script>
</head>
<body>
</body>
</html>