JavaScript对象
对象属于一种复合数据类型,在对象中可以保存多个不同的数据类型的 属性
对象的分类
-
内建对象
-由es标准中定义的对象,在任何的es的实现中都可以使用
-比如:math string number Boolean function object。。。
-
宿主对象
-由js的运行环境提供的对象,目前来讲主要指浏览器提供的对象
-比如:BOM DOM
console.log();
document.write();
-
自定义对象
-有开发人员自己创建的对象
创建对象
使用new关键字调用的函数,是构造函数constructor
构造函数是专门用来创建对象的函数
使用typeof检查一个对象时,会返回object
var obj = new Object();
//console.log(typeof obj);
在对象中保存的值称为属性
向对象添加属性
语法: 对象, 属性名 = 属性值
读取属性
语法:对象.属性名
//name属性
obj.name = "张三";
//gender
obj.gender = "男"
//age
obj.age = 17;
console.log(obj);
document.write(obj.name, obj.gender, obj.age);
修改对象的属性值
语法: 对象.属性名 = 新值
obj.name = "jack"
console.log(obj.name);
删除对象的属性
语法:delete 对象.属性名
delete obj.name;
console.log(obj.name);
属性名和属性值
var obj = new Object;
/*
向对象中添加属性
属性名:
-对象的属性名不强制要求遵守标识符的规范
什么乱七八槽的名字都可以使用
-但是我们使用还是尽量按照标识符的规范去做
*/
obj.name = "tom";
obj.var = "jan";
console.log(obj.var);
如多要使用特殊的属性名,不能采用 . 的方式来操作
需要使用另一种方式,
语法:对象["属性名"] = 属性值
读取时也需要采用这种方法
使用[]这种形式区操作属性,更加的灵活
在[]中可以直接传递一个变量,这样变量值就会读取那个属性
例如:数字...
obj["1234"] = 1234;
obj["@#$%^&*()@#$%^**"] = "!@#$%^&*()_+"
console.log(obj["1234"]);
console.log(obj["@#$%^&*()@#$%^**"])
var n = "1234";
var m = "@#$%^&*()@#$%^**";
console.log(obj[n]);
document.write(obj[n]);
document.write(obj[m]);
属性值
js对象的属性值,可以是任意的数据类型
甚至也可以是一个对象
obj.test = true;
obj.test2 = undefined;
obj.test3 = String;
console.log(obj.test);
console.log(obj.test2);
console.log(obj.test3);
in 运算符
//创建一个对象
var obj2 = new Object;
obj2.name = "timi";
//将obj2设置为obj的属性
obj.test4 = obj2;
console.log(obj.test4.name);
/*
in 运算符
-通过运算符可以检查一个对象中是否含有指定的属性
如果有则返回true 没有则返回false
- 语法
“属性名” in 对象
*/
//检查obj中是否含有test5属性
console.log("test5" in obj)