一.对象
(一)分类
1.内建对象(ES标准中定义的对象)
比如: Math String Number Boolean Function Object
2.宿主对象(JS运行环境提供的对象,主要指浏览器提供的对象)
比如: BOM DOM
3.自定义对象(开发人员自己创建的对象)
(二)使用
//创建
var obj = new Object( );
/* 向对象中添加属性:
对象名.属性名 = 属性值;
使用特殊属性名:
对象["属性名"] = 属性值 */
obj.name = "111";
/* in 运算符
检查一个对象中是否有指定属性
有则返回true,无false
"属性名" in 对象 */
console.log("name" in obj);
(三)其他对象
1.Data对象
//封装当前代码执行的时间
var d = new Data();
//创建一个指定的时间对象,需要在构造函数中传递一个表示时间的字符串作为参数
//日期格式 :月份/日/年 时:分:秒
var d2 = new Data("12/03/22 11:10:30");
利用时间戳来测试代码执行的性能w
var start = Data.now();
for(var i = 0; i < 100; i++){
console.log(i);
}
var end = Data.now();
console.log("执行了:"+(end - start)+"毫秒");
2.Math对象
(1)方法
- abs(x) 返回数的绝对值
- cos(x) sin(x) tan(x) acos(x) asin(x) 返回数的(反)余弦/正弦/正切值
- exp(x) 返回e的指数
- log(x) 返回数的自然对数(底数为e)
- max(x,y) min(x,y) 返回最大/最小值
- pow(x,y) x的y次幂
- random() 返回0~1之间的随机数
- sqrt(x) 返回x的平方根
- ceil(x) floor(x) 对数进行上/下舍入
(四)包装类
1.js中有三个包装类,通过这三个包装类老爷将基本数据类型的数据转化为对象
String() Number() Boolean()
var num = new Number(3);
var str = new String("hello");
var bool = new Boolean(ture);
cosole.log(typeof num);//object
cosole.log(typeof str);//object
cosole.log(typeof bool);//object
二、构造函数
1.构造函数,专门用来创建Person对象的
创建方式与普通函数没有区别,不同的是构造函数习惯上首字母大写
2.和普通函数与别在于:调用方式不同
普通函数是直接调用,构造函数要使用new关键字来调用
3.构造函数执行流程:
(1)创建一个新的对象
(2)将新建的对象设置为函数中的this,在构造函数中可以使用this来引用新建的对象
(3)逐行执行函数中的代码
(4)将新建的对象作为返回值返回
function Person(name , age , gender){
this.name = name;
this.age = age;
this.gender = gender;
/* 向对象中添加一个方法
this.sayName = function(){
alert(this.name);
}; */
}
/* 向原型中添加sayName方法
Person.prototype.sayName = function fun(){
alert("我是:"+this.name);
}; */
/* 修改Person中的原型toString
打印对象中的内容(不打印object)
Person.prototypr.toString = function(){
retuen "Person[name = "+this.name+";
}; */
var per = new PErson("小明",12,"男");
console.log(per);