语法
(键名类型不建议为数值类型)
字面量
var 对象 = {属性:属性值, 键:值, 键名:键值}
构造函数
var 对象 = new Object{属性:属性值, 键:值, 键名:键值}
对象的操作
调用方式(取值语法)
点语法:对象.键名
不能解析为数值类型的键名(能存入显示,不能调用)
不能解析变量 结果undefined
[ ]语法:对象['键名']
可以解析变量
var obj={name:'Bob',age:19,sex:'男', 0:100 , 1:200}
var a='name'; //点语法
console.log( obj.name);//Bob
console.log(obj.0); //错误!!点语法 不能解析 数值类型
console.log(obj.a); //错误!!点语法 不能解析 变量
// obj.a 以a作为键名从对象中调用对应的数据,当前对象obj中没有a这个键名调用结果就undefined
//[ ]语法
console.log( obj['age'] );//19
console.log( obj[0] ); //100 能解析 数值类型
console.log(obj[a]) //Bob 能解析 变量
//[]语法 先 解析 变量a 中 存储的数值数据 'name' 使用它 作为 键名 从对象中调用数据
! 如果对象中没有的键名 调用结果是 undefined
修改
对已经存在的键名 重复赋值 ,发生覆盖,修改原本数据单元内的内容
var obj = { name:'张三' , age:18 , sex:'男' };
obj.name = '李四'; // 对已经存在的键名记性赋值操作
obj['age'] = 15;
新增
对不存在的键名赋值,新增设定的键名,并在存储单元增添数据
obj.addr = '北京' ; obj['phone'] = 123456 ;
删除
delete( 对象.键名 )
delete( 对象['键名'] )
delete 对象.键名
delete 对象['键名']
delete( obj.addr );
delete( obj['name'] );
对象的循环
语法:for(var 变量 in 对象){} / / 变量中存储循环对象的键名
var obj={name:'Bob',age:19 }
for(var key in obj){ //key和 `for` 循环的 `i` 一个道理 以字符串形式存储索引
console.log(key+':'+obj[key]); //name:Bob age:19
}//此时调用key 必须用[] '.'无法解析key