IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> JavaScript知识库 -> JavaScript Math Date Number Boolean对象 错误处理 -> 正文阅读

[JavaScript知识库]JavaScript Math Date Number Boolean对象 错误处理

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);

  JavaScript知识库 最新文章
ES6的相关知识点
react 函数式组件 & react其他一些总结
Vue基础超详细
前端JS也可以连点成线(Vue中运用 AntVG6)
Vue事件处理的基本使用
Vue后台项目的记录 (一)
前后端分离vue跨域,devServer配置proxy代理
TypeScript
初识vuex
vue项目安装包指令收集
上一篇文章      下一篇文章      查看所有文章
加:2021-08-18 12:36:40  更:2021-08-18 12:38:15 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 9:35:45-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码