JavaScript--总结六(类型-内置对象)
类型
原始数据类型:number , string , boolean , undefined , null , object
基本类型(简单类型)也可以说是值类型:number string boolean
复杂类型(引用类型):object
空类型:undefined null
值类型的值在哪一块空间中存储?-----栈中存储
引用类型的值在哪个空间存储?----对象在堆上存储,地址在栈上存储
//var num=10;//值类型,值在栈上 //var obj={};//复杂类型,对象在堆,地址(引用)在栈
值类型之间的传递,传递的是值---值类型作为函数的参数,传递的是值
引用类型之间的传递,传递的是地址(引用)---引用类型作为函数的参数,传递的是地址
引用类型传递解析:
var p=new Person("zs",18,1000);-----在堆上开辟一个空间存储了对象 new Person("zs",18,1000),在栈上存储了它的地址(p),p指向了对象new Person("zs",18,1000);
consolo.log(p.name);-----此时的p指向的对象的name属性就是“zs”;
f1(p)----将p的地址传入到f1函数中,同一个地址它们的指向相同,函数中person.name将p的name属性改为了“ls”,此时p的name属性是“ls”;
注:以上这里p和personde指向是同一个对象,所有person改了属性即等于p改了属性
函数中person=new Person("aa",18,10);---重新new了一个对象,在空间中重新开辟了一个堆空间存储对象new Person("aa",18,10);person的地址也随即改变成了新的对象的地址,person的指向发生了改变,此时p的name的值依旧是“ls”.
注:以上person改变了地址的指向,所有person改变的属性和p中的无关,p中的属性依旧是原来的。
内置对象
js学习中三种对象
1--内置对象---JS系统自带的对象
2--自定义对象---自己定义的构造函数创造的对象
3--浏览器对象---BOM
内置对象:Math Date String Array
如何学习一个方法?
方法的功能
参数的意义和类型
返回值意义和类型
Math对象
MDN---在线的帮助文档(通过查询MDN学习Math对象的方法的使用)
Math对象不是构造函数,它具有数学常数和函数的属性和方法,都是以静态成员的方式提供
实例对象:通过构造函数创建出来的,实例化的对象
静态对象:不需要创建,直接就是一个对象.方法(静态方法)直接通过这个对象名字调用
实例方法必须通过实例化对象调用
静态方法必须通过大写的对象调用