拖了好久才有时间写博客,学校事情太多了
21.for in遍历对象的成员(包括属性和方法)
var obj={
name='xxx';
age=22;
sayHi=function(){
console.log("Hi");
}
}
for (var key in obj){//其中key表示name,age,sayHi,对象调用除了.也可以用[]
console.log(key+"----"+obj[key]);
}
22.删除对象属性:delete o.name
23.简单数据类型存放在内存中栈部分,系统会自动给清理;复杂数据类型存放在内存中堆中,程序员手动清理,回收内存
24.所有自定义的对象都基于Object,复杂类型new时在堆中创建一块内存空间存储对象的属性和方法,当var p1=new Person('xxx',8)
又将在栈上开辟一块内存空间存P1对象在堆上的内存地址,因此通过p1变量访问对象进行了两次寻址,首先在栈上找到堆的地址,再通过地址访问堆
25.数组也是复杂类型,也存放在堆
26.JavaScript组成:ECMAScript+BOM+DOM
JavaScript中的对象有三种:也就是定义在ECMAScript标准的:(自定义对象,内置对象,)浏览器对象;内置对象如Math/Array/Date…每个都有很多属性和方法
27.Math不是一个构造函数,不需要用new创建对象,里面提供的是静态成员
Math.floor();//地板,向下取整,(46.3)->46
Math.ceil();//天花板,向上取整,(10.1)->11
Math.round();//取整,四舍五入
28.Date是一个构造函数,首先通过new Date()创建日期实例(对象),实例成员
29.GMT:格林威治时间,世界标准时间,0时区
GMT+0800:中国标准时间,多8个时区,快8小时,
计算机存距离1970年1月1日0时0分0秒相差的毫秒数,可以var d=new Date();d.valueOf();
来查看毫秒数
30.日期构造函数Date()传参
1)空:获取的是当前时间对象
2)传入毫秒值:可以进行服务器交互
3)传入日期形式的字符串“1988/8/8 8:8:8”
4) 可以传数字(年,月,日)
如果小于1970年1月1日0时0分0秒,用valueOf()返回负数,推荐用getTime(),通过对象调用的是实例成员
获取当前毫秒数也可以用Date.now();但是通过构造函数调用的方法叫做静态成员,有浏览器兼容问题
var num=+new Date();=Number(new Date())
把日期对象转换为整型显示的是毫秒值