Date Math

6.5 date math对象的学习

 * 21.Math对象
 * 22.Date对象
 * 23.错误处理
Math对象

Math对象:仅专门提供数学计算的方法
Math对象没有构造函数,所以不能new!——唯一一个
所有API都直接通过Math类型名调用

  1. 取整:
    上取整:只要超过,就取下一个整数
    Math.ceil(num)

下取整:去掉小数部分,取整数部分
Math.floor(num)

四舍五入取整:小数部分够5就进1,不够就舍掉
var num=Math.round(num)
缺点:只能取整

var str=num.toFixed(d); d:0-20之间
按指定d位小数四舍五入
缺点:返回字符串,不能直接用于计算

自定义round方法:3步:
function round(num,d){
num*10的d次方倍
Math.round(num.toFixed(2))
num/10的d次方倍
返回number
}

var math1 = 1.39;
var math2 = 1.99;
var math3 = 1.09;
console.log("向上取整");
console.log(Math.ceil(math1)+":"+Math.ceil(math2)+":"+Math.ceil(math3));

console.log("向下取整");
console.log(Math.floor(math1)+":"+Math.floor(math2)+":"+Math.floor(math3));

console.log("四舍五入取整");
console.log(Math.round(math1)+":"+Math.round(math2)+":"+Math.round(math3));

var math4 = 1.3935721;
console.log("按指定位小数四舍五入");
console.log(math4.toFixed(4));      //1.3936

2.乘方和开平方
乘方: Math.pow(底数,幂)
开平方: Math.sqrt(num);

console.log(Math.pow(8,2));     //64
console.log(Math.sqrt(25));     //5

3.最大值和最小值
Math.max(值1,值2,...)
Math.min(值1,值2,...)
如何获取数组中的最大值:固定套路
Math.max.apply(Math,arr);

var arr = [7,9,3,5,1,2];
console.log(Math.max.apply(Math,arr));

随机数:Math.random() 0<=r<1的小数
任意min~max之间取随机整数
Math.floor(Math.random()(max-min+1)+min)
如果min从0开始,可简写为:
Math.floor(Math.random()
(max+1))

var min = 10;
var max = 20;
var rs = Math.floor(Math.random()*(max-min+1)+min);     //min从0开始时可以缩写
console.log(rs);
Date对象

Date对象:封装一个时间值,提供对时间的操作方法
Date对象中封装了1970年1月1日0点至今的毫秒数
何时使用:计算日期前,都要创建或获得日期对象

创建:4种:

  1. 创建日期对象,同时获得客户端当前时间
    var now=new Date();
var now = new Date();//当前日期时间
console.log(now);
var ms = now.getTime();     //1970年1月1日 至 今天毫秒数
console.log(ms);

2.var date=new Date("yyyy/mm/dd[ hh:MM:ss]");自定义时间点
var date=new Date(yyyy,mm,dd,hh,MM,ss);
date对象中,月从0~11
现实中月要-1修改
从日期对象取出月都+修改

var now = new Date("2111/11/11 11:11:11");
console.log(now);
var now  = new Date(2222,11,12,12,12,12);
console.log(now);   //Thu Dec 12 2222 12:12:12 GMT+0800 (中国标准时间)

3.复制一个日期对象:在计算之前,将旧日期对象中的毫秒数取出,放入一个新的日期对象中保存副本。
所有日期API都直接修改原日期对象,无法保留旧值
var old=new Date("yyyy/mm/dd");
var newDate=new Date(old.getTime());
结果:修改newDate,old不会受影响

var newDate = new Date(now.getTime());
console.log(newDate);   //Thu Dec 12 2222 12:12:12 GMT+0800 (中国标准时间)

Date对象API:年 月 日 星期
FullYear Month Date Day
时 分 秒 毫秒
Hours Minutes Seconds Milliseconds

1.每个分量都有一对儿get/set方法
var n=date.getXXX()获得分量的值
date.setXXX(n)设置分量的值,Day没有set
2.返回值:Date从1开始到31结束
除Date外,其余都是从0开始到 进制-1结束
强调:只有month需要修正,其余都正常

var birth = new Date("1993/10/18");
console.log(birth.getFullYear());     //1993
birth.setDate(17);
console.log(birth);

3.日期转字符串:
var str=date.toLocaleString(); //日期+时间
var str=date.toLocaleDateString(); //日期
var str=date.toLocaleTimeString(); //时间

var d = new Date;
console.log(d.toLocaleString());    
console.log(d.toLocaleDateString()); 
console.log(d.toLocaleTimeString());   
错误处理

错误对象:Error 封装错误信息的对象,在发生错误时自动创建
6种:
ReferenceError:找不到对象时
TypeError:错误的使用了类型或对象的方法时
RangeError:使用内置对象的方法时,参数超范围
SyntaxError:语法写错了
EvalError:错误的使用了Eval
URIError:URI错误
如何错误处理:
try{
可能发生错误的代码
}catch(err){
只有发生错误时才执行的代码——错误处理代码
}[finally{
无论是否出错,肯定都要执行的代码——善后工作(保存,释放
}]

try{
    var now = oldnow;
    document.write("成功");
}catch(err){
    document.write("失败");
}finally{
    document.write("释放");
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 218,386评论 6 506
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,142评论 3 394
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,704评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,702评论 1 294
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,716评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,573评论 1 305
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,314评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,230评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,680评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,873评论 3 336
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,991评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,706评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,329评论 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,910评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,038评论 1 270
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,158评论 3 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,941评论 2 355

推荐阅读更多精彩内容

  • .写一个函数,返回从min到max之间的 随机整数,包括min不包括max function randomness...
    邢烽朔阅读 315评论 0 1
  • Date对象: Date对象是js提供的日期和时间接口;Date对象有几个静态方法(即直接通过date对象调用的方...
    草鞋弟阅读 392评论 0 0
  • 1:构造函数方法:Dtae().now()以毫秒返回当前时间。==new Date().getTime();2:D...
    冰激凌_db91阅读 136评论 0 0
  • 人的爱真的可以达到这种地步吗? 一共两桩杀人案件,将之联系在一起的是数学天才石神,将之分离的却是物理天才汤川。P不...
    炫天麟阅读 586评论 0 2
  • 我喜欢一个人是那种,很淡的…… 是属于那种,如果你不喜欢我,我明天就会忘记你叫什么的那种。 歇斯底里什么的……不是...
    羥羊阅读 80评论 0 0