string number boolean Null undefined 以上五种类型属于基本数据,以后我们看到的值只要不是上面内的五种,那就算是对象。
object 对象
对象是一种复合的数据类型,在对象中可以保存多个不同数据类型的属性。
对象的分类:
1.内建对象
-由Es标准中定义的对象,在任何的Es实现中都可以使用。
如 math string number boolean Function 等
2.宿主对象
-由js内运行可提供的对象,目前来讲主要是指浏览器提供的对象。
如Bom Dom
3.自定义对象
-由开发者自定义的对象
创建对象:
var obj =new object();
使用new关键字调用的函数,是构造函数constructor,构造函数是专门用来创建对象的函数,在对象中保存的值称为属性。
对象的属性名不强制要求遵守标识符的规范,什么烂七八糟的名字都可以起,但是我们使用还是尽量按照标准标识符的规范去做。
语法: 对象.属性名=属性值;
例 obj.name="孙悟空";
读取对象的属性 语法: 对象.属性名
如果读取对象中没有的属性,不会报错而且会返回undefined
修改对象属性名 语法: 对象.属性名 =新值
删除对象的属性 语法: delete 对象.属性名
如果要使用特殊的属性名,不能采用.的方式来操作,需要使用另一种方式。 语法: 对象[ "属性名"]=属性值 读取时也采用这种方式。
使用[]这种方式去操作属性,更加的灵活,在[]中可以直接传递一个变量,这样变量值是多少就会读取那个属性。
例: obj["123"]="你好";
var n=123;
console.log(obj["n"]); 这样输出 你好
属性值
js对象的属性值可以是任意的数据类型,甚至也可以是一个对象
使用in检查对象中是否含有指定属性
- 语法:"属性名" in 对象
- 如果在对象中含有该属性,则返回true
如果没有则返回false
枚举对象中的属性,使用for....in语句
语法: for(var 变量 in对象){}
for...in语句中对象有几个属性,循环就执行几次 。console.log(obj[n]);输出属性值
基本数据类型和引用数据类型
- 基本数据类型
String Number Boolean Null Undefined
- 引用数据类型
Object
- 基本数据类型的数据,变量是直接保存的它的值。
变量与变量之间是互相独立的,修改一个变量不会影响其他的变量。
- 引用数据类型的数据,变量是保存的对象的引用(内存地址)。
如果多个变量指向的是同一个对象,此时修改一个变量的属性,会影响其他的变量。
- 比较两个变量时,对于基本数据类型,比较的就是值,
对于引用数据类型比较的是地址,地址相同才相同