对象
创建对象
1.利用字面量创建对象
var obj={};
2.利用new Object创建对象
var obj=new Object();
3.利用构造函数创建对象(构造函数首字母要大写)
function Obj(){
this.属性=值;
this.方法=function(){}
}
调用构造函数
new Obj();
构造函数不需要return就可以返回结果,返回结果就是对象
构造函数方法
var a=new Obj();(a为使用构造函数实例化的对象)
a.方法(实参);
对象属性
里面的属性或方法采用键值对的形式
键 属性名:值 属性值
多个属性或者方法中间用逗号隔开
键 必须是字符串,可以不加引号,如果键中带有连字符必须加引号(“background-color”)
方法冒号后面跟的是一个匿名函数
使用对象
console.log(obj.name);
或
console.log(obj['age']);
调用方法
obj.a();
删除对象属性
delete obj.age
或
delete obj['age']
对象的遍历
for in循环
for(var k in obj){
console.log(k); (k变量输出的是属性名)
console.log(obj[k]); (obj[k]输出的是值)
}
对象的特殊情况
var obj={
name:'xiaoming',
age:18
}
console.log(obj == '[object Object]')
代码的输出结果为true
当对象与字符串进行值的判断时
因为一个是复杂数据类型 一个是普通数据类型
这时候会执行obj.valueOf(),结果为一个对象,没办法进行比较
就会执行obj.toString() ==> 变成 ‘[object Object]’
所以执行结果为true
但是如果是 === 那么就会判断类型 结果为false
同理
因为普通js对象上的键只能为字符串
所以当一个对象作为对象的键时 也会发生这种情况
js会将作为键的对象变为一个字符串[object Object]
var obj = {}
var obj2 = {}
obj2[obj] = 123
console.log(obj2)
输出结果为 [object Object]: 123
因为键都为字符串 所以当有其他对象也作为键在obj2中加入条目时会进行覆盖
var obj = {}
var obj2 = {}
var obj3 = {}
obj2[obj] = 123
obj2[obj3] = 456
console.log(obj2)
输出结果为 [object Object]: 456
原先的[object Object]: 123
就被[object Object]: 456
覆盖了
构造函数
内置函数
Math
1.Math取绝对值
Math.abs();
会将字符串型数字转换为数字型(隐式转换)
非数字型字符串为NaN
2.Math对象随机数
random()返回一个随机的小数 0 =< x < 1
返回两个数中的随机整数,包括这两个数
function getRandomIntInclusive(min, max) {
min = Math.ceil(min);
max = Math.floor(max);
return Math.floor(Math.random() * (max - min + 1)) + min;
3.Math取整
Math.floor();
向下取整 往小了取值
Math.ceil();
向上取整 往大了取值
Math.round();
四舍五入,负数时特殊情况(-1.5=>-1)(往大取值)
4.Math.pow(基数, 指数) 取幂
5Math.sqrt() 二次方根
如果参数为负值,返回NaN
6Math.max() 参数中选最大值
参数可以为多个正负值
7Math.min() 参数中取最小值
参数可以为多个正负值
8.Math.PI 得到一个近似π的值
是一个属性 不是方法
9.正弦
Math.sin(Math.PI*30/180) // 0.5(参数为弧度)
10.余弦
Math.cos(Math.PI*60/180) // 0.5(参数为弧度)
Data
1.Data 日期对象
var date = new Date();
是一个构造函数 必须用new,返回当前系统的当前时间
var date = new Date(2021,11,4,0,0,0);(返回的是12月不是11月[0-11])
//月和日为一位时,前面加0不会有影响
var date = new Date('2021-11-4 8:8:8');(字符串时间返回输入的时间)
//月和日为一位时,前面加0会加8小时
var date = new Date(0);(输入时间戳)
2.Date 总的毫秒数
距离1970年1月1日过了多少毫秒
var date=new Date();
date.valueOf();
date.getTime();
或
var date=+new Date();
或
Date.now();(H5新增)
3.Date 获取现在的时间… 时分秒同理
Obj.getFullYear();