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对象、字符串对象、错误处理相关推荐

  1. JavaScript内置对象→对象、系统函数、Date日期对象、String字符串对象、Math对象、Number数字对象、Object对象、Boolean对象、Error对象

    对象 系统函数 Date日期对象 String字符串对象 Math对象 Number数字对象 Object对象 Boolean对象 Error对象

  2. Math、Date内置对象方法整理

    Math : 内置的对象(构造函数)静态属性或静态方法. 一. Math.PI : 圆周率 console.log(Math.PI); 二.近似值 1. 四舍五入 :  Math.round() 注: ...

  3. JS中的内置对象 --- Math、Date、Array、String

    1. 基本概念区分 实例对象:通过构造函数创建出来,实例化对象.实例方法必须通过实例对象调用 静态对象(内置对象): 不需要创建, 直接就是一个对象,方法(静态方法)直接通过这个对象名调用.静态方法必 ...

  4. JavaScript对象、JSON对象、JSON字符串的区别

    一.首先看下什么是JSON JSON:JavaScript Object Natation,JavaScript对象的表现形式,已经发展成一种轻量级的数据交换格式. JavaScript对象的表现形式 ...

  5. python对象底层原理_Python字符串对象实现原理详解

    在Python世界中将对象分为两种:一种是定长对象,比如整数,整数对象定义的时候就能确定它所占用的内存空间大小,另一种是变长对象,在对象定义时并不知道是多少,比如:str,list, set, dic ...

  6. startindex 不能大于字符串长度_玩转云端丨redis的5种对象与8种数据结构之字符串对象(下)...

    引言 本文是对<redis设计与实现(第二版)>中数据结构与对象相关内容的整理与说明.本篇文章只对对象结构,1种对象--字符串对象.以及字符串对象所对应的两种编码--raw和embstr, ...

  7. Java常用类:Data()的用法,获得当前日期和时间对象date 定义对象Date date1 = new Date(36000000);获得包含的日期和时间 比较date和date1是否相等

    1.获得当前日期和时间对象date 2.定义对象Date date1 = new Date(36000000);获得包含的日期和时间 3.比较date和date1是否相等 4.比较date是在date ...

  8. Java创建字符串对象详解

    JAVA创建对象有两种方式,一种是通过字符串常量的方式创建,比如String str="abc",一种是字符串变量通过new形式的创建,比如String str = new Str ...

  9. Java中字符串对象String、StringBuffer、StringBuilder的比较

    原文地址:http://www.iteye.com/topic/522167 作者:每次上网冲杯Java时,都能看到关于String无休无止的争论.还是觉得有必要让这个讨厌又很可爱的String美眉, ...

最新文章

  1. Android学习笔记之ProgressDialog
  2. 助力企业利润快跑的下一只轮子——移动应用?【创新时代】
  3. 程序员面试题精选100题(33)-在O(1)时间删除链表结点[数据结构]
  4. winshark重要数据结构
  5. 11.LNMP基础架构
  6. 会玩!格力公开“磁悬浮床垫”专利
  7. 软考信息系统项目管理师_体系介绍_证书作用价值_报考条件_考生分析---软考高级之信息系统项目管理师001
  8. 从零基础入门Tensorflow2.0 ----七、37. 文本生成之---3. 采样文本生成
  9. python将英文翻译为中文_Python中英文翻译工具
  10. 在虚拟机中安装centos6操作系统,DHCP下克隆,再使用CRT软件进行远程登录
  11. java调用soap接口_java远程调用soap协议接口
  12. 【超全面】Python内置函数详解
  13. 深度学习三巨头也成了大眼萌,这个一键转换动画电影形象的网站「太火」了...
  14. Moniter和Lock
  15. 入门神经网络优化算法(六):二阶优化算法K-FAC
  16. php配置使用pdo,解析php5配置使用pdo
  17. 麒麟V10服务器SP2版本离线安装MYSQL8.0
  18. 如何修改图片大小200kb?怎样让图片不超过200k?
  19. 学习线程安全队列ConcurrentQueue
  20. 计算器(可随意编辑)

热门文章

  1. 6.1.4 读取日志
  2. 联想u450与部分操作系统不兼容的解决办法
  3. JSP上传图片限制大小像素
  4. 苹果手机顶部安全区兼容
  5. 写一篇树莓派4B其中要包括简介和优点
  6. sstab 保存后的读取问题
  7. php人群定向搜索,如何用好搜索定向人群?
  8. 处理excel用vba还是python_《处》字意思读音、组词解释及笔画数 - 新华字典 - 911查询...
  9. 刘德华--8影子女人
  10. windows下的libutp测试代码