对象
什么是对象?
在js中,一切皆是对象。
对象,生活中可见和不可见的东西,在世界中,客观存在的都是一个对象。
桌子,笔记本,手机,人。
在日常生活中,我们是如何来描述这个对象的呢?
描述手机
规格参数,静态的特征:如CPU,内存,摄像头,屏幕
提供的功能,动态的行为,打电话、发短信、上网、拍照
描述张三
静态的特征,姓名,性别,年龄,籍贯,学历
动态的行为,编写代码,打篮球,唱歌,跳舞
在描述一个对象的时候,通常是从两个方面来描述的:
1.静态的特征:
2.动态的行为
把静态的特征和动态的行为组合在一起,就形成了一个完整的对象。
在js中,静态的特征和动态的行为通通称之为对象的属性。
如果是静态的特征,就是普通的属性,以变量的形式来出现。
如果是动态行为,就是以函数的形式来出现。
注意:对象:一系列属性的无序集合
基本的对象
// 手机对象
var a = {
'cpu' : '联发科',
'内存' : '4G',
'摄像头' : '1200',
'call' : function(){
console.log('打电话');
},
'mess' : function(){
console.log('发短信');
}
};
console.log(a.cpu);;
a.call()
object对象
创建object有两种方式:
1.直接量(字面量)
2.new关键字
字面量方式:
// 1.字面量方式创建对象
var b = {};//空对象 没有属性
console.log(typeof(b));
// 属性名:属性值
var b = {
'name':'张三',//键值对
'age' :18
}
说明:
初始化两个属性:
a):每个属性称为一个键值对(值对/名对)
b)属性名 与 属性值之间用冒号分割;
c)属性与属性之间用逗号分隔
d)最后一个属性可以省略逗号,但是不建议;
键值对:「是一种数据的存储规则,可以非常快捷的查找到对应数据的一种方式,注意:键名是不可以重复的」;
new关键字方式创建对象
2.new关键字
var obj = new Object();
obj.name = '章三'
console.log(obj); // {name:'章三'}
在调用对象的属性和方法的时候,使用注意的「点」
var obj ={
name:'张三',
age : 18,
sex:'男',
'my weigth' :180,
}
//请间(调用)对象的属性可以通过 点的方式 或则”
console.log(obj.age);
console.log(obj.['age']);//如果用[]方式访间,必须给属性加引号, 变为字符单
console.log(obj.['my weigth']);//复合属性必须要[]方式访问
格式如下:对象.属性或对象.方法()
此时,我们就可以来理解一下 console.log内容了:
console是一个对象,表示的开发者工具的控制台对象,该对象有多个方法,其中有一个方法叫做log,它的作用是向控制台输出log信息。
添加属性
var obj1 = new Object();
console.log(obj1);
//设置属性对象.属性 .属性值对象['属性"].属性值
obj1.name = '张三';
obj1['age'] = 23;
console.log(obj1)
3.遍历对象
for(var k in obj){//k 表示的属性
console.log(k);
console.log(obj[k])//属性值
}
Object是所有其他对象的祖先。
其他对象的创建方式和object有类似之处,它们都有两种创建的方式。
关于object,它有一些已经定义好的方法。
Math对象
内置对象。
功能:提供数学相关的一些运算。
Math对象
不需要new 直接使用就好
获取圆周率的值
// 获取圆周率的值
console.log(Math.PI);
// 向下取整
console.log(Math.floor(3.56));//3
console.log(Math.floor(3.12));//3
// 向上取整
console.log(Math.ceil(4.18));//5
console.log(Math.ceil(4.56));//5
// 四舍五入
console.log(Math.round(6.2));//6
console.log(Math.round(6.7));//7
理解:
1.floor:地板
2.ceil:天花板
3.round:周围
注意:有一个非常重要的数学函数,random()
随机一个小数,范围在[0,1),包括0,但不包括1。
随机:
console.log(Math.random());
案例:
随机一个[n,m)之间的整数。
公式:Math.floor(Math.randoom()*(m - n +1) + n)
说明:m表示区间最大值,n表示区间的最小值
var val = Math.floor(Math.random()*(20-5+1)+5);
console.log(val);
var val = Math.floor(Math.random()*(20-5+1)+5);
console.log(val);
var val = Math.floor(Math.random()*(20-5+1)+5);
console.log(val);
获取数组或字符串的随机下标
公式:Math.floor(Math.random()*arr.length);
说明:arr.length表示数组或字符串的长度
Date对象
//日期对象介绍和Date()
创建时间的对象date();
作用:提供关于日期时间的相关的操作。
//new Date()方法的使用和返回值
//创建时间对象 new date()
var date = new Date();
console.log(date);//打印创建出来的时间对象
// 1.传的字符串
var a = new Date('2020,6,1');
console.log(a);//2020,6月1日
var b = new Date('2008/8-8');//字符串里的年月日,可以用, / - 分隔
console.log(b);
var c = new Date('2008,8,8 20:8:8')//如果需要设置时分秒,必须和年月日用空格隔开,时分秒用冒号分割
console.log(c);
var d = new Date('2020/6-1 12');//Invalid Date【无效日期 不能单独的只写小时
console.log(d);
var e = new Date('2021/6-1 12:0')//至少需要写一个分钟
console.log(e);
// 不加引号,实际输出的是月份加一
var time = new Date(2021,1,1);//2021,2,1
console.log(time);
//不加引号,年月日用逗号隔开,时分秒同样也是用逗号隔开的,可以只写小时
var time1 = new Date(2021,8,15, 12);
console.log(time1);
Date对象提供的属性和方法
获取 | |
---|---|
1、时间对象.getFullYear():返回4位数的年份 | |
2、时间对象.getMonth():返回日期中的月份,返回值为0-11 | |
实际月份:1 2 3 …12 | |
getMonth: 0 1 2 …11 | |
3、时间对象.getDate():返回月份中的天数,返回值为1-31 | |
4、时间对象.getDay();返回星期:返回0-6 0—星期日 1—星期一 | |
5、时间对象.getHours():返回小时,返回的是0-23 | |
6、时间对象.getMinutes():返回分 | |
7、时间对象.getSeconds():返回秒 | |
8、时间对象.getTime():返回表示日期的毫秒数 //1970年1月1日8:0:0到当时间的毫秒数 |
设置时间对象的属性
设置 | |
---|---|
1、时间对象.setFullYear(year):设置4位数的年份 | |
2、时间对象.setMonth(mon):设置日期中的月份,从0开始,0表示1月 | |
3、时间对象.setDate(日期):设置日期 | |
4时间对象.setHours():设置小时 | |
5.时间对象.setMinutes():设置分 | |
6.时间对象.setSeconds():设置秒 | |
7.时间对象.setTime(567890009876789):以毫秒数设置日期,会改变整个日期 | |
注意: | 在设置时间对象的时候设置完成的时间他是以毫秒的方式进行展示的,如果需要查看可以再次通过get的形式进行获取查看. |
总结:
当设置的是当前时间时获取月份时会进行减一 ,例如----var date = new Date(2019,12,18) date.getMonth( )= 11;
当设置的是过去时间时分一下两种情况:
1、字符串类时 例如----- var date = new Date(‘2016 , 2 , 25’) 则获取月份时date.getMonth( ) 减一 真实日期不变;
2、数字类时 例如----- var date = new Date(2016 , 2 , 25) 则获取月份时date.getMonth( ) 不变 还是2 真实日期月份会加一