JS的对象及构造函数

对象

创建对象

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();
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Raccom

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值