js的数据类型分为六种: 基本数据类型:string null Boolean undefined number 引用的数据类型:object
衍生:为什么需要使用对象呢? 在使用变量表示是都是分开表示的,无法联系成一个对象; 如:var name='ZS',age=18; 解决:就是可以采取对象的形式来书写
1.对象的分类:
1.1内置对象
由ES标准中定义的对象,在任何的ES的实现中都可以使用 比如:Math String NUmber Boolean FUnction
1.2宿主对象
由js运行环境的对象;目前由浏览器提供的
比如:BOM DOM
1.3:自定义对象 开发人员自己创建的
2.对象
2.1创建对象
var obj=new Object() 使用new关键字调用的函数,是构造函数constructor;构造函数是专门用来创建对象的函数
2.2添加对象属性
语法:对象.属性="属性值" 如:obj.name="张三"
2.3读取对象的属性:
语法:对象.属性 如:obj.name 注:如果读取对象的属性中没有的就会返回为undefined;
2.4修改对象的属性
语法:对象.需要修改的属性="新值" 如:obj.name="孙悟空"
2.5删除对象的属性
语法: delete 对象.属性名 如: delete obj.name
3.对象的属性和属性值 3.1属性名: ①对象的属性可以不遵守标识符的规范(也就是定义变量的规范);但是尽量使用变量的规范 ②在使用其他特殊的属性的时候,不能采取对象.属性---------应该使用对象["属性"]="属性值" 语法:对象["属性"]="属性值" 如:obj["123"]="789"------------读取的时候也是console.log(obj["123"])
如何理解他们的区别的?(具体介绍请参考以下博文) www.cnblogs.com/maoyi/p/137… 总结:
3.2属性值
属性值可以是任何值,甚至可以是一个对象。
4.in运算符 可以检测对象里面是否有某个属性;如果存在就返回true,不存在就返回的是fasle。 语法:"需要检测的对象的属性名" in 对象名 如:"test1" in obj
5.基本数据类型和引用数据类型 基本数据类型的值是存在栈里面的-----值与值是独立存在的(修改变量的值是不会影响其他变量的值的)
引用数据类型: 对象保存的是在堆里---先在堆里创建一块空间(该空间的地址保存在栈里); 如果两个变量引用的是一个对象----那么修改一个变量的属性同时也会改变另外一个属性。
注:基本的数据类型比较==的时候是比较的值;引用数据类型比较的是地址。
6.使用字面量创建对象
var obj={属性:"属性值",属性:"属性值"}