JavaScript Math Date Number Boolean对象 错误处理

12 篇文章 2 订阅
1 篇文章 0 订阅

Math 对象并不像 Date 和 String 那样是对象的类,因此没有构造函数 Math(),像 Math.sin() 这样的函数只是函数,不是某个对象的方法。您无需创建它,通过把 Math 作为对象使用就可以调用其所有属性和方法。

1. Math对象

PI   圆周率

console.log(Math.PI);//圆周率

abs()  获取绝对值

console.log(Math.abs(-1));//1

ceil()   向上取整

console.log(Math.ceil(3.14));//4

floor()  向下取整

console.log(Math.floor(3.94));//3

round() 四舍五入取整

console.log(Math.round(6.49));//6

pow(x,y) 次方/次幂

console.log(Math.pow(5,2));//5的二次方   25

max()  获取一组字最大值

console.log(Math.max(23, 9, 95, 78, 5));//95

min()  获取一组数字最小值

console.log(Math.min(23, 9, 45, 78, 5)); //5

random()   获取随机   >=0   <1

console.log(Math.random());
console.log(Math.random());
console.log(Math.random());

Math对象    随机获取4个字母  代码实例:

var arr = ['A', 'B', 'C', 'D', 'E', 'F', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P',
    'Q', 'R', 'S', 'U', 'V', 'W', 'T', 'X', 'Y', 'Z'
];
//准备新数组  用于保存每次获取的随机元素
var arr2 = [];
//循环四次  每次获取一个随机元素
for (i = 0; i < 4; i++) {
    //随机获取公式:随机下标=向下取整(随机数*数组长度)
    var a = Math.floor(Math.random() * arr.length);
    //console.log(n);
    //通过随机下标找到元素  放入到新数组
    arr2.push(arr[a]);
    //从原数组arr中删除获取的元素
    arr.splice(a, 1)
}
console.log(arr2)

2.Date对象

用于日期时间的存储和计算

(1)创建

new Date(‘2021/8/17 11:44:30’)

var d1=new Date('2021/8/17 11:24:12');
console.log(d1);//打印结果2021-08-17T03:24:12.000Z

var d1 = new Date('2021-8-17 11:24:12'); //有兼容性问题   苹果下有问题
console.log(d1); //打印结果2021-08-17T03:24:12.000Z

new Date(2021,7,17,11,44,30)//月份范围0~11代表1~12月

var d2 = new Date(2021, 8, 17, 11, 24, 30); //月份是从零开始对应1~12月   所以八月变成九月
console.log(d2) //打印结果2021-09-17T03:24:30.000Z

new Date () 存储的是当前操作系统

var d3 = new Date(); //当前操作系统的时间
console.log(d3);

new Date(16830360000000)存储的是距离计算机元年(1970-1-1 0:0:0 0)的毫秒数

var d4 = new Date(1608336000000);
console.log(d4); //打印结果2020-12-19T00:00:00.000Z

存储距离计算机元年(1970-1-1 0:0:0 0)的毫秒数

//距离1970差值年份*365*24*60*60*1000=1608336000000

 API时间获取 

getFullYear()年

getMonth()月 月份范围0~12  代表1~12

getDate()日

getHours()

getMinutes()

getSeconds()

getMilliseconds() 毫秒

getDay星期  0~6 对应 日~六

getTime()距离元年的毫秒数

var d = new Date('2021/8/17 11:50:30');
console.log(d.getFullYear());
console.log(d.getMonth() + 1) ///月份范围0~11代表1~12月
console.log(d.getDate());
console.log(d.getHours());
console.log(d.getTime()); //距离计算机元年毫秒数
console.log(d.getDay()); //星期  0~6 对应 日~六

 创建对象保存当前操作系统的时间 ,获取日期时间,打印以下格式今天是xxxx年xx月x日  星期x

var d = new Date();
var year = d.getFullYear();
var month = d.getMonth() + 1;
var date = d.getDate();
var day = d.getDay();
//判断月份是否小于10,如果小于10,在前拼接字符串0
if (month < 10) {
    month = '0' + month;
}
if (date < 10) {
    date = '0' + date;
}
//数组
var arr = ['日', '一', '二', '三', '四', '五', '六']
//console.log(arr[day]);
//拼接
console.log('今天是' + year + '年' + month + '月' + date + '日' + '星期' + arr[day]);

当前时间距离2021年9月1日还有x天x小时x分x秒  创建两个对象,计算两者相差的毫秒数

var d1 = new Date(); //当前时间
var d2 = new Date('2021/9/1')
//console.log(d2)
var d = d2.getTime() - d1.getTime();
//两个对象相减得到的就是相差的毫秒数
//console.log(d2-d1);
//将相差的单位换算为秒
d = Math.floor(d / 1000);
//计算相差的秒数部分,用相差的秒数去除于含有的分钟(60)
var secound = d % 60;
//console.log(secound);
//计算相差的秒数部分,用相差的秒数去除于含有的小时(3600),然后在换算为分钟
var minute = (d % 3600);
minute = Math.floor(minute / 60);
//console.log(minute);
//计算相差的秒数部分,用相差的秒数去除于含有的小时(24*3600),然后在换算为小时
var hour = d % (24 * 3600);
hour = Math.floor(hour / 3600);
//console.log(hour);
//计算相差的天数,直接用相差的秒数
var day = Math.floor(d / (24 * 3600));
console.log(day);
console.log('距离2021年9月1日还有' + day + "天" + hour + '小时' + minute + '分钟' + secound + '秒')

 

(2)转为本地字符串

存在兼容性问题,只能用于调试

toLocaleString()    //’2021-8-17  15:28:30’ 

toLocaleDateString()   //’2021-8-17’

toLocaleTimeString()    //’15:28:30’

var d=new Date('2021/8/17  15:21:40');
console.log(d.toLocaleString());//转化为本地字符串
console.log(d.toLocaleDateString());
console.log(d.toLocaleTimeString());

setFullYear()  设置年

setMonth()   设置月

setDate()     设置日期

setHours()     设置小时

setMinute()   设置分钟

setSeconds()   设置秒

getMilliseconds() 设置毫秒数

var d=new Date ('2021/8/17  15:21:40');
//另存一份(拷贝Date对象)
var d2=new Date(d);
//设置  修改数据
d.setFullYear(2024);
d.setMonth(0);
d.setDate(20);
//d.setDay(6);//没有这个方法  不允许修改星期
console.log(d.toLocaleString());
var d = new Date('2021/8/17  15:21:40');

//3天前   获取当前的日期然后减3  再把结果设置为日期
d.setDate(d.getDate()-3);
console.log(d.toLocaleString());
//3个月以后
d.setMonth(d.getMonth()+3)
console.log(d.toLocaleString());

 假设一个员工的入职时间是2021/8/17   合同期为3年合同到期前1个月要发起续签。计算出以下时间  入职时间 到期时间   续签时间。

代码展示

var d = new Date('2021/8/17');
//拷贝一份入职时间  作为到期时间
var d2 = new Date(d);
//3年以后
d2.setFullYear(d.getFullYear() + 3)
//拷贝一份到期时间   作为续签时间
var d3 = new Date(d2);
// 提前一个月
d3.setMonth(d2.getMonth() - 1);
console.log('入职时间:' + d.toLocaleDateString());
console.log('到期时间' + d2.toLocaleDateString());
console.log('续签时间' + d3.toLocaleDateString());

3.Number对象

new Number()  将数据转为数值,返回对象

Number()  将数据转为数值  返回时数值

toFixed(n)   保留小数点后n位

toString()  将数值转为字符串

4.Boolean对象

new Boolean()  将数据转换为布尔型   返回对象’

Boolean()    将数据转换为布尔型   返回布尔值

!!数据  将数据隐式转换为布尔型

var b1=true;//字面量
//false :0  NaN  ''  null   undefined
var b2=new Boolean();//new 调用     ]
var b3=Boolean('');//用普通函数调用   
console.log(b2);//[Boolean: false
console.log(b3);//false

//{ }    [ ]
console.log(Boolean({}));//true
console.log(Boolean([]));//true

//两个取反的目的   将数据隐式转换为布尔型
console.log(!!1);//1  为true     0为false

5.错误处理

(1)常见的错误

语法错误(SyntaxError):不符合语法规范,例如出现中文错误  括号缺少一半

引用错位(ReferenceError):使用了未声明的变量

类型错误(TypeError):调用的函数不是一个函数类型

范围错误(RangeError):超出了范围,例如递归无法结束...

自定义错误 : 程序员自己指定的错误

            throw   错误内容

(2)错误处理

try{

尝试执行,可能产生错误,即使出现错误,也不影响后续代码执行

}catch(err){

一旦try出现错误才会执行,将错误保存到err中

执行错误处理的代码

代码展示:

var age =80;
try{
    //尝试执行   可能会产生错误,即使产生错误也不影响后续代码执行
    if(age<18 || age>60){
        throw '非法的年龄';
    }   
}catch(err){
    //捕获
    //一旦try中出现错误才会执行,把try中的错误保存到err中
    console.log(err);
    //解决错误
    age=60;
}
console.log(age);
console.log(2);

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值