javaScri的数据类型
如果使用基本数据类型的数据,我们所创建的变量都是独立的,不能成为一个整体。 对象是一种复合的数据类型,在对象中可以保存多个不同的数据类型的属性 对象的分类:
- 内建对象:有ES标准定义的对象,在任何的ES的实现中都可以使用的,比如Math,string,number,function,object
- 宿主对象:有js运行环境提供的对象,目前主要有浏览器提供的对象:比如 BOM(文档对象模型) DOM(浏览器对象模型)
- 自定义对象:由开发人员自己创建的对象
基本数据类型和引用数据类型的值比较
当比较两个基本数据的值时,就是比较值,而比较引用数据类型的值时,它是比较的对象的内存地址
构造函数的执行流程:
- 立刻创建一个新的对象
- 将新建的对象设置为函数中this,在构造函数中可以使用this来引用新建的对象
- 逐行执行函数中的代码
- 将新建的对象作为返回值返回 使用同一个构造函数创建的对象,我们称为一类对象,也将一个构造函数称为一个类。我们将通过一个构造函数创建的对象,称为是该类的实例 使用in检查对象中是否含有某个属性时,如果对象中没有但是原型中有,也会返回true 可以使用对象的hasownProperty()来检查对象自身中是否含有该属性,更用该方法只有当对象自身中含有属性时,才会返回true。
this的情况:
- 当以函数的形式调用时,this是window
- 当以方法的形式调用时,谁调用方法this就是谁
- 当以构造函数的形式调用时,this就是新创建的那个对象
原型对象也是对象,所以它也有原型。
当我们使用一个对象的属性或方法时,会现在自身中寻找 自身中如果有,则直接使用,如果没有则去原型对象中寻找,如果原型对象中有,则使用,如果没有则去原型的原型中寻找,直到找到Object对象的原型,object对象的原型没有原型,如果在Object中依然没有找到,则返回undefined
toSrting
当我们直接在页面中打印一个对象时,事件上是输出的对象的tostring()方法的返回值