Math对象、Date对象、字符串对象、错误处理
Math对象、Date对象、字符串对象、错误处理
- 一、Math对象
- 1.Math.random()
- 二、Date对象
- 1.创建Date对象
- 2.获取日期时间
- 练习:创建Date对象,包含当前操作系统 的时间,最后打印出以下效果:
- 练习:计算距离2021年劳动节还有x天x小时x分x秒
- 3.Date()本地字符串
- 修改日期
- 时间日期之前和日间日期之前的设定
- 三、Number对象
- 1.Number对象创建
- 2.Number的api
- 四、Boolean对象
- Boolean对象
- 五、错误处理
- 1.语法错误SyntaxError
- 2.引用错误ReferenceERRor
- 3.类型错误TypeError
- 4.范围错误RangeError
- 5.自定义错误 程序员自己指定的错误
- 6.尝试执行
一、Math对象
不需要创建对象,可以直接使用API
abs() 取绝对值
ceil() 向上取整
floor() 向下取整
round() 四舍五入取整
max() 取一组数字最大值
min() 取一组数字最小值
pow(x,y) 计算x的y次方
//圆周率
console.log( Math.PI );
//absolute 绝对的 求绝对值
console.log( Math.abs(4-8) );
//向上取整
console.log( Math.ceil(7.135) );
//向下取整
console.log( Math.floor(7.935) );
//四舍五入
console.log( Math.round(7.3) );
//一组数字最大值
console.log( Math.max(23,9,78,6,45) );
//一组数字最小值
console.log( Math.min(23,9,78,6,45) );
//x的y次方
console.log( Math.pow(5,2) );
1.Math.random()
Math.random() 获取一个随机数,范围0~1之间 >=0 && <1
练习:随机抽奖系统
//随机抽奖系统
var arr=['连君昊','弘鹏海','厍英卫','隆弘光','索乐然','益玉怡','陆小谷','符丝娜','戈梦曼','扶依珊','孔凝海','冯贝丽','陈夏槐','田恬静','车姝艳','钱章文','寇微婉','余娅童','璩俏美','钭紫菱','谷清佳','车姝艳'];
var index=Math.floor(Math.random()*arr.length);
console.log(index,arr[index]);
练习
在a~z之间随机取4个字母,然后放入到一个新数组中(不重复)
//在a~z之间随机取4个字母,然后放入到一个新数组中(不重复)
var arr= ['a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z'];
var arr2=[];
//循环4次,每次取一个随机字母
for(var i=1;i<5;i++){//随机下标,向下取整(随机数*数组长度)var index=Math.floor(Math.random()*arr.length);//console.log(index,arr[index]);//把每次获取的随机字母放入到新数组arr2中arr2.push( arr[index] );arr.splice(index,1);
}
console.log(arr2,arr);
二、Date对象
用于对日期时间的存储和计算
1.创建Date对象
new Date(‘2021/03/16 10:41:30’) 默认都是0时区显示,对象中是字符串
new Date(2021,2,16,10,41,30) //月份为0~11表示为1~12月,不能为字符串
new Date() 表示当前时间
new Date(1000)距离计算机元年(1970-1-1 0:0:0 0)的毫秒数,会产生一个具体的日期时间
2.获取日期时间
getFullYear()
获取年
getMonth()+1
获取月份 0~11月对应1~12月
getDate()
获取日期
getHours()
获取小时
getMinutes
获取分
getSeconds
获取秒
getMilliseconds
获取毫秒
getDay()
获取星期 0~6对应星期日到星期六
getTime()
获取距离计算机元年的毫秒数
var d=new Date('2021/03/16 11:23:30'); //获取年
console.log( d.getFullYear() );//获取月份 0\~11月对应1~12月console.log(d.getMonth()+1 );//获取日期
console.log( d.getDate() );
//获取小时
console.log( d.getHours() );
//获取星期 0~6对应星期日到星期六
console.log( d.getDay() );
//获取距离计算机元年的毫秒数
console.log( d.getTime() );
练习:创建Date对象,包含当前操作系统 的时间,最后打印出以下效果:
今天是xxxx年xx月xx日 xx:xx:xx 星期二
//创建Date对象,包含当前操作系统 的时间,最后打印出以下效果:
//今天是xxxx年xx月xx日 xx:xx:xx 星期二
var d = new Date();
var year = d.getFullYear();
var month = d.getMonth()+1;
var date = d.getDate();
var hours = d.getHours();
var minute =d.getMinutes();
//console.log(fen);
if (second<10){second='0'+second;
}
var second =d.getSeconds();
//console.log(miao);
var xq =['星期日','星期一','星期二','星期三','星期四','星期五','星期六']
var day =d.getDay();
console.log('今天是'+year+'年'+month+'月'+date+'日'+' '+hours+':'+minute+':'+second+' '+xq[day]);
练习:计算距离2021年劳动节还有x天x小时x分x秒
//计算距离2021年劳动节还有x天x小时x分x秒
//创建两个对象,计算出
//两个对象直接相减得到 的是相差的毫秒数
var d1=new Date(); //获取当前时间
var d2=new Date('2021/5/1');//目标时间
d=d2.getTime()-d1.getTime();
//计算相差的毫秒数
d=parseInt(d/1000);
//计算相差的秒,只需要除以60
var second=d%60;
//计算相差的分,只需要去除相差的时间中含有的小时
var minute=d%3600;
//换算为分钟
minute=parseInt( minute/ 60 );
//计算相差的小时,只需要去除相差的时间中含有的天
var hour=d%(3600*24);
//换算为小时
hour=parseInt(hour/3600);
//计算相差的天
var date=d/(3600*24);
date=parseInt(date);
console.log('离2021年51假还有'+date+'天'+hour+'小时'+minute+'分'+second+'秒');
3.Date()本地字符串
toLocaleString()
获取完整时间
oLocaleDateString()
获取日期部分
toLocaleTimeString()
获取时间部分
var d=new Date();
//本地字符串,有兼容性问题,调试使用
console.log(d.toLocaleString() );
console.log(d.toLocaleDateString() );
console.log(d.toLocaleTimeString() );
修改日期
1.setFullYear() 设置年
2.setMonth() 设置月 0~11代表1到12月
3.setHours() 设置小时
4.setMinutes() 设置分
5.setSeconds() 设置秒
6.setMIlliseconds() 设置毫秒
7.setTime() 设置距离计算机元年毫秒数,产生具体的日期时间
var d=new Date('2021/3/16 14:55:46');//设置年份d.setFullYear(2024);d.setMonth(13);//0~11设置月份d.setDate(20);//设置天//d.setDate(5); 不能设置星期//设置距离计算机元年毫秒数,会会产生一个具体的时间,覆盖之前的设置d.setTime(1500000000);console.log( d.toLocaleString() );
时间日期之前和日间日期之前的设定
//3年后,获取当前的年份,在这个基础之上加3,再把结果作为要设置的年份
var d=new Date('2019/3/16 14:55:46');
d.setFullYear( d.getFullYear()+3 );
//3天前
d.setDate( d.getDate()-3);
//2个小时后
d.setHours( d.getHours()+2)
console.log( d.toLocaleString() );
//软件需求:
//入职时间:2021/03/17 入职是周末提前到周五
//到期时间:
//续签时间:var d1 = new Date('2021/3/17');
//保存入职时间
var d2= new Date(d1);
//到期时间
d2.setFullYear( d2.getFullYear()+3 );
var d3=new Date(d2);
//提前一个月签订
d3.setMonth( d3.getMonth()-1 );
//判断是否为周六和周日,如果是周六提前一天签订,周日提前二天签订
if(d3.getDay()==6){d3.setDate(d3.getDate()-1);
}else if(d3.getDay()==0){d3.setDate(d3.getDate()-2);
}
console.log('入职时间为'+d1.toLocaleDateString() );
console.log('到期时间为'+d2.toLocaleDateString() );
console.log('續簽时间为'+d3.toLocaleDateString() );
三、Number对象
1.Number对象创建
1.new Number() 将数据转为数值,返回对象
2.Number() 将数据转为数值,返回数值
2.Number的api
1.toFixed(n) n为保留小数点后面n数
2.toString(n) 不提供参数可以将数字转为字符串,提供参数n,n为进制数,也可以转为进度数
var n=2*3.14*5;
console.log( n.toFixed(2) );
//整数也可以使用
var total=3500*2+4000*3;
console.log( total.toFixed(2) );
四、Boolean对象
Boolean对象
new Boolean() 将数据l转为布尔型,返回对象
2.Boolean() 将数据转为布尔型,返回boolean// false的五个值 // 0 NaN '' underfiend null
空数组,空对象转换为Boolean
!!数据 将数据隐式转换为布尔型var arr=[]; var obj={}; console.log(Boolean(arr),Boolean(obj));
五、错误处理
1.语法错误SyntaxError
SyntaxError语法错误,程序执行前,检测出现的语法错误,例如:缺少括号,出现 中文符号
2.引用错误ReferenceERRor
使用了未申明的变量
3.类型错误TypeError
所调用的函数或者方法,不是一个函数
4.范围错误RangeError
数据的使用超出了规定的范围
5.自定义错误 程序员自己指定的错误
throw 错误内容
6.尝试执行
try{
可能产生的错误的代码,一旦报错执行catch中语句
}catch(err){
将错误内容放入到err中
执行错误处理
}
var age=65;
try{if(age<18 || age>60){throw '请提供一个合法的年龄';}
}catch(err){//捕获错误,只有try中出现错误,才会执行//将错误信息放入到err,将不再影响后续代码执行
}
练习:
创建一个函数,传递任意一个日期,返回这个日期是一年的第多少天
getDays(2021,3,16)
getDays(‘2021/03/16’)
方法一:
function fn(num){var d1=new Date(num);var date=d1.toLocaleDateString();var year=d1.getFullYear();//设置为当年的1月1日var d2=new Date(d1);d2.setDate(1);d2.setMonth(0);//console.log(d2);//算出相差的毫秒数var day=d1.getTime()-d2.getTime();//转为天数,因为是从第0天算,所以加上一天day =day/(1000*60*60*24)+1;console.log(date+'是'+year+'年的第'+day+'天');
}
fn('2012/03/05');//请输入字符串
方法二:
//创建函数,分别用户选择年月日
function getDays(year,month,date){//接收用户输入的年月日var d1=new Date(year,month-1,date+1);//创建当年的1月1日var d2=new Date(year,0,1);//算出相差的毫秒数var d3=d1-d2;//转换为天数,返回结果return d3/(1000*60*60*24);
}
console.log(getDays(2021,3,17));
Math对象、Date对象、字符串对象、错误处理相关推荐
- JavaScript内置对象→对象、系统函数、Date日期对象、String字符串对象、Math对象、Number数字对象、Object对象、Boolean对象、Error对象
对象 系统函数 Date日期对象 String字符串对象 Math对象 Number数字对象 Object对象 Boolean对象 Error对象
- Math、Date内置对象方法整理
Math : 内置的对象(构造函数)静态属性或静态方法. 一. Math.PI : 圆周率 console.log(Math.PI); 二.近似值 1. 四舍五入 : Math.round() 注: ...
- JS中的内置对象 --- Math、Date、Array、String
1. 基本概念区分 实例对象:通过构造函数创建出来,实例化对象.实例方法必须通过实例对象调用 静态对象(内置对象): 不需要创建, 直接就是一个对象,方法(静态方法)直接通过这个对象名调用.静态方法必 ...
- JavaScript对象、JSON对象、JSON字符串的区别
一.首先看下什么是JSON JSON:JavaScript Object Natation,JavaScript对象的表现形式,已经发展成一种轻量级的数据交换格式. JavaScript对象的表现形式 ...
- python对象底层原理_Python字符串对象实现原理详解
在Python世界中将对象分为两种:一种是定长对象,比如整数,整数对象定义的时候就能确定它所占用的内存空间大小,另一种是变长对象,在对象定义时并不知道是多少,比如:str,list, set, dic ...
- startindex 不能大于字符串长度_玩转云端丨redis的5种对象与8种数据结构之字符串对象(下)...
引言 本文是对<redis设计与实现(第二版)>中数据结构与对象相关内容的整理与说明.本篇文章只对对象结构,1种对象--字符串对象.以及字符串对象所对应的两种编码--raw和embstr, ...
- Java常用类:Data()的用法,获得当前日期和时间对象date 定义对象Date date1 = new Date(36000000);获得包含的日期和时间 比较date和date1是否相等
1.获得当前日期和时间对象date 2.定义对象Date date1 = new Date(36000000);获得包含的日期和时间 3.比较date和date1是否相等 4.比较date是在date ...
- Java创建字符串对象详解
JAVA创建对象有两种方式,一种是通过字符串常量的方式创建,比如String str="abc",一种是字符串变量通过new形式的创建,比如String str = new Str ...
- Java中字符串对象String、StringBuffer、StringBuilder的比较
原文地址:http://www.iteye.com/topic/522167 作者:每次上网冲杯Java时,都能看到关于String无休无止的争论.还是觉得有必要让这个讨厌又很可爱的String美眉, ...
最新文章
- Android学习笔记之ProgressDialog
- 助力企业利润快跑的下一只轮子——移动应用?【创新时代】
- 程序员面试题精选100题(33)-在O(1)时间删除链表结点[数据结构]
- winshark重要数据结构
- 11.LNMP基础架构
- 会玩!格力公开“磁悬浮床垫”专利
- 软考信息系统项目管理师_体系介绍_证书作用价值_报考条件_考生分析---软考高级之信息系统项目管理师001
- 从零基础入门Tensorflow2.0 ----七、37. 文本生成之---3. 采样文本生成
- python将英文翻译为中文_Python中英文翻译工具
- 在虚拟机中安装centos6操作系统,DHCP下克隆,再使用CRT软件进行远程登录
- java调用soap接口_java远程调用soap协议接口
- 【超全面】Python内置函数详解
- 深度学习三巨头也成了大眼萌,这个一键转换动画电影形象的网站「太火」了...
- Moniter和Lock
- 入门神经网络优化算法(六):二阶优化算法K-FAC
- php配置使用pdo,解析php5配置使用pdo
- 麒麟V10服务器SP2版本离线安装MYSQL8.0
- 如何修改图片大小200kb?怎样让图片不超过200k?
- 学习线程安全队列ConcurrentQueue
- 计算器(可随意编辑)