1. 内置对象

  • js对象分为3种:自定义对象(var obj={})、内置对象、浏览器对象。
  • 前两种对象是js基础内容,属于ECMAScript,第三个浏览器对象是js独有的。讲js API的时候会讲。
  • 内置对象:js语言自带的一些对象,这些对象供开发者使用,并提供了一些常用的或者最基本而必要的功能(属性和方法),比如求最大值最小值,就不需要自己再去写相关的代码就可用直接利用内置对象得出。程序员将不关心内部是怎么实现的,只要拿出一组数来,就可以直接求出最大值和最小值。
  • 内置对象最大的优点,是帮助我们快速开发。
  • js提供了多个内置对象:Math、Date、Array、String等

2. 查文档

MDN/W3C

MDN官方网址

https://developer.mozilla.org/zh-CN/

如何学习对象中的方法:

step1:查阅该方法的功能

step2:查看里面参数的意义和类型

step3:查看返回值的意义和类型

step4:通过demo进行测试

3. Math对象

3.1 Math.PI、 Math.max()、 Math.min()

https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Math

//Math数学对象 不是一个构造函数 不需要new一下就可用使用 而是直接用里面的属性和方法即可
console.log(Math.PI); //3.141592653589793 一个属性 圆周率
console.log(Math.max(1, 99, 3)); //9 一个方法 求最大值
//如果给定的参数中至少有一个参数无法被转换成数字,则会返回 NaN。
console.log(Math.max(1, 99, 'pink老师')); //NaN
//如果没有参数,则结果为 - Infinity
console.log(Math.max()); //-Infinity

案例1:利用对象封装自己的数学对象,里面有最大值、最小值、PI

//利用对象封装自己的数学对象,里面有最大值、最小值、PI
var myMath = {
PI: 3.141592653589793,
max: function() {
var maxValue = arguments[0];
for (var i = 1; i < arguments.length; i++) {
if (arguments[i] > maxValue) {
var temp = arguments[i];
arguments[i] = maxValue;
maxValue = temp;
}
}
return maxValue;
},
min: function() {
var minValue = arguments[0];
for (var i = 1; i < arguments.length; i++) {
if (arguments[i] < minValue) {
var temp = arguments[i];
arguments[i] = minValue;
minValue = temp;
}
}
return minValue;
}
};
console.log(myMath.PI);
var a = myMath.max(1, 3, 99, 5);
console.log(a);
var b = myMath.min(1, 3, 99, 5);
console.log(b);

3.2 Math.abs()

console.log(Math.abs(1)); //1
console.log(Math.abs(-1)); //1
console.log(Math.abs('-1')); //1 隐式转换 会把字符串-1转换为数字型
console.log(Math.abs('pink')); //NaN

3.2 Math.floor()

//(1)Math.floor() 向下取整 对于一切数都往最小了的取
console.log(Math.floor(1.1)); //1
console.log(Math.floor(1.5)); //1
console.log(Math.floor(1.9)); //1 console.log(Math.floor(-1.1));//-2
console.log(Math.floor(-1.5));//-2
console.log(Math.floor(-1.9));//-2

3.3 Math.ceil()

//(2)Math.ceil() 向上取整 对于一切数都往最大了的取
console.log(Math.ceil(1.1)); //2
console.log(Math.ceil(1.5)); //2
console.log(Math.ceil(1.9)); //2 console.log(Math.ceil(-1.1)); //-1
console.log(Math.ceil(-1.5)); //-1
console.log(Math.ceil(-1.9)); //-1

3.4 Math.round()

//(3)Math.round() 四舍五入 对于一个数距离取距离起最近的整数,对于.5往大了取
console.log(Math.round(1.1)); //1
console.log(Math.round(1.5)); //2
console.log(Math.round(1.9)); //2 console.log(Math.round(-1.1)); //-1
console.log(Math.round(-1.5)); //-1
console.log(Math.round(-1.9)); //-2

3.5 随机数方法random() 重要

//1.Math对象随机方法 random() 返回一个随机小数x  0<=x<1;
//2.这个方法里面不跟参数
console.log(Math.random());
//4.若想得到两个数之间的随机整数 并且包含这两个数
//Math.floor(Math.random * (max - min + 1)) + min; function getRandom(min, max) {
return Math.floor(Math.random() * (max - min + 1)) + min;
}
console.log(getRandom(1, 10));
//5.随机点名
var arr = ['apple', 'banana', 'orange', 'pink', 'blue'];
console.log(arr[getRandom(0, 4)]);

案例:猜数字游戏

随机生成一个1~10之间的数,并让用户输入一个数字

  • 如果用户输入的数字大于该数字则继续猜
  • 如果用户输入的数字小于该数字则继续猜
  • 如果用户输入的数字等于该数字则结束程序
function getRandom(min, max) {
return Math.floor(Math.random() * (max - min + 1)) + min;
}
var randNum = getRandom(1, 10);
while (true) {
var num = prompt('请输入一个数字');
if (num > randNum) {
alert('输入的数字太大啦,继续猜吧!');
} else if (num < randNum) {
alert('输入的数字太小啦,继续猜吧!');
} else {
alert('输入正确,程序结束');
break;
}
}

作业:要求用户输入1~50之间的一个数字,但是只要10次猜的机会

//要求用户输入1~50之间的一个数字,但是只要10次猜的机会
function getRandom(min, max) {
return Math.floor(Math.random() * (max - min + 1)) + min;
}
var randNum = getRandom(1, 50);
for (var i = 10; i > 0; i--) {
var num = prompt('请输入1~50之间的一个数');
if (num > randNum) {
alert('太大啦,继续猜吧!你还有' + (i - 1) + '次机会');
} else if (num < randNum) {
alert('太小啦,继续猜吧!你还有' + (i - 1) + '次机会');
} else {
alert('答案正确!');
break;
}
}

4. 日期对象

4.1日期对象的使用

https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Date

//回忆
var arr = new Array(); //创建一个数组对象
console.log(arr); //[]
console.log(typeof arr); //object var obj = new Object(); //创建一个对象实例
console.log(obj); //{}
console.log(typeof obj); //object
//Date() 日期对象 也是一个构造函数 必须用new来创建我们的日期对象
//1. Date()的使用 如果没有提供参数,那么新创建的Date对象表示实例化时刻的日期和时间。
var date = new Date();
console.log(date); //Mon Dec 16 2019 14:38:53 GMT+0800 (中国标准时间)
//2. 常用的写法
//写法1:数字型2019,10,01,或者是字符串型'2019-10-1 8:8:8'
var date1 = new Date(2019, 10, 1);
console.log(date1); //Fri Nov 01 2019 00:00:00 GMT+0800 (中国标准时间) 注意这里返回的是11月不是10月(后面再解释)
var date2 = new Date('2019-10-1 8:8:8');
console.log(date2); //Tue Oct 01 2019 08:08:08 GMT+0800 (中国标准时间)
var date3 = new Date('2019/10/1/8:8:8');
console.log(date3); //Tue Oct 01 2019 08:08:08 GMT+0800 (中国标准时间)

4.2日期格式化

上述方法得到的日期格式对用户不太友好,我们想要2019-8-8 8:8:8格式的日期该怎么办呢?

//格式化日期 年 月 日
var date = new Date();
console.log(date.getFullYear()); //2019 返回当前的年
console.log(date.getMonth()); //11 返回当前的月份 返回的月份比当前的月份少1 因为date.getMonth()获得当月(0-11)
//所以要记得月份加1
console.log(date.getMonth() + 1); //12
console.log(date.getDate()); //16 返回当前的日
console.log(date.getDay()); //1 返回当前星期几 星期天~星期6依次对应0123456
//现在想写一个2019年12月16日星期三
var date = new Date(); //必须先实例化
var year = date.getFullYear();
var month = date.getMonth();
var dates = date.getDate();
var arr = ['星期天', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六'];
var day = date.getDay();
console.log('今天是:' + year + '年' + month + '月' + dates + '日 ' + arr[day]); //今天是:2019年11月16日 星期一
var date = new Date();//获取当前的时间所以不要传参数进去
//格式化 时 分 秒
console.log(date.getHours()); //18 得到当前的小时
console.log(date.getMinutes()); //35 得到当前的分钟
console.log(date.getSeconds()); //53 得到当前的秒数
//要求封装一个函数 返回当前的时分秒 格式:时:分:秒
function reTime() {
var date = new Date();
//格式化 时 分 秒
var hour = date.getHours(); //18 得到当前的小时
hour = hour < 10 ? '0' + hour : hour; var min = date.getMinutes(); //35 得到当前的分钟
min = min < 10 ? '0' + min : min; var sec = date.getSeconds(); //53 得到当前的秒数
sec = sec < 10 ? '0' + sec : sec; return hour + ':' + min + ':' + sec;
}
console.log(reTime()); //18:49:07

4.3获取日期总的毫秒数

  • 获取Date总的毫秒数(过去到现在总的毫秒数)
  • Date对象是基于1970年1月1日(世界标准时间)起的毫秒数,经常利用总的毫秒数来计算时间,因为它更精确。
//获得Date总的毫秒数(时间戳)
//1. 通过valueOf()或者getTime()
var date = new Date();
console.log(date.valueOf()); //1576493997344
console.log(date.getTime()); //1576494010514
//2.简单写法(最常用的写法)
var date1 = +new Date(); //+new Date();返回的就是总的毫秒数
console.log(date1); //1576494090710
//3. H5新增,获得总的毫秒数 低版本的浏览器可能不兼容
console.log(Date.now()); //1576494168472
//毫秒数是永远不重复的

4.4案例:倒计时(重点案例)

//倒计时案例
//用时间点a的毫秒数减去时间点b的毫秒数,
//再将其转换为月日年时分秒 转换公式如下
//d天=parseInt(总秒数/60/60/24);
//h小时=parseInt(总秒数/60/60%24);
//m分钟=parseInt(总秒数/60%60);
//s秒=parseInt(总秒数%60);
//注意:1s=1000ms
function countDown(time) {
var nowTime = +new Date(); //返回当前时间总的毫秒数
var inputTime = +new Date(time); //返回用户输入时间总的毫秒数
var times = (inputTime - nowTime) / 1000; //times是剩余时间的总的秒数
var d = parseInt(times / 60 / 60 / 24);
d = d < 10 ? '0' + d : d;
var h = parseInt(times / 60 / 60 % 24);
h = h < 10 ? '0' + h : h;
var m = parseInt(times / 60 % 60);
m = m < 10 ? '0' + m : m;
var s = parseInt(times % 60);
s = s < 10 ? '0' + s : s;
return d + '天' + h + '时' + m + '分' + s + '秒';
}
console.log(countDown('2019-12-16 20:30:00')); //00天00时37分42秒

JavaScript-----13.内置对象 Math()和Date()的更多相关文章

  1. 内置对象(Math、Date、String、Array、基本包装类型)

    一.内置对象 js中三种对象:内置对象.自定义对象.浏览器对象 实例对象是指通过构造函数创建出来,然后实例化的对象(new关键字) 静态对象是指不需要创建,直接调用的对象,可以在整个JS里调用的公共对 ...

  2. 【JavaScript】内置对象Math

    Math是具有用于数学常数和函数的属性和方法一内置对象.不是函数对象. 描述编辑 不像其他的全局对象,Math不是一个构造函数.所有属性和方法Math都是静态的.你指的是常数pi为Math.PI你调用 ...

  3. 第一百零八节,JavaScript,内置对象,Global对象字符串编码解码,Math对象数学公式

    JavaScript,内置对象,Global对象字符串编码解码,Math对象数学公式 学习要点: 1.Global对象 2.Math对象 ECMA-262对内置对象的定义是:"由ECMASc ...

  4. JavaScript 标准内置对象

    JavaScript 标准内置对象或称全局的对象(global objects)不要和 全局对象(global object)混淆.这里说的全局的对象是说在全局作用域里的对象,全局作用域包含了全局对象 ...

  5. 一、JavaScript概述 二、JavaScript的语法 三、JavaScript的内置对象

    一.JavaScript的概述###<1>JavaScript的概念 又称ECMAScript,和java没有任何关系 嵌入在HTML元素中的 被浏览器解释运行的 一种脚本语言. ###& ...

  6. js内置对象——Math

    Math()是JavaScript的内置对象(对于内置对象的理解,会单独写文章说明),包含了很多数学相关的方法: 常用方法: 1 Math.ceil(x) //取最近的最大整数返回 2 Math.fl ...

  7. JavaScript 标准内置对象Promise使用学习总结

    Javascript标准内置对象Promise使用学习总结   by:授客 QQ:1033553122 1.   基础用法 var condition = true; let p = new Prom ...

  8. JS基础-内置对象【字符串+Date+Math】

    JS内置对象[字符串] // charAt() 返回字符 // charCodeAt() 返回字符的unicode编码 var str="hello world"; console ...

  9. JavaScript内置对象——Math对象

    这几天在刷leetcode的时候用到了一些Math对象的知识,故作一下总结~ JavaScript中的Math对象也是一个常见的内置对象,然而与String等其它常见对象不同,Math对象没有构造函数 ...

随机推荐

  1. nessus安装、msfconsole辅助模块使用(网安全实训第三天)

    本期内容:nessus安装.msfconsole辅助模块使用.后渗透攻击 1. nessus安装 2.msfconsole辅助模块使用 3.后渗透攻击 1. nessus安装 (1)下载nessus ...

  2. 【JS】306- 深入理解 call,apply 和 bind

    作者:一像素 链接:https://www.cnblogs.com/onepixel/p/6034307.html 在JavaScript 中,call.apply 和 bind 是 Function ...

  3. 第一个boot项目

    一.打开网址https://start.spring.io/ 进去springboot官网,根据自己实际情况选择所需组件,点击生成. 二.导入maven项目,但是pom.xml报Line1未知错误,检 ...

  4. Ubuntu系统下arm-linux-gcc交叉编译环境搭建过程

    搭建所需环境Linux版本:Ubuntu 14.10 交叉编译器版本:arm-linux-gcc-4.4.3资源链接 何为交叉编译环境搭建交叉编译环境,即安装.配置交叉编译工具链.在Ubuntu环境下 ...

  5. 你不知道的JavaScript(上)作用域与闭包

    第一部分 作用域与闭包 第一章 作用域是什么 1.作用域 变量赋值操作会执行两个动作:首先编译器会在当前作用域中声明一个变量(如果之前没有声明过), 然后会在运行时引擎会在作用域中查找该变量,找到就会 ...

  6. 如何用Pact进行微服务集成测试

    原文链接 https://codefresh.io/docker-tutorial/how-to-test-microservice-integration-with-pact/ 挑战:微服务集成测试 ...

  7. java程序员面试经历(不忘初心,永不放弃,方得始终)。

    其实一直想静下心好好写一点博客,记录下青春,但一直忙于学习,写bug.....转眼间2017只剩下最后几天,岁月无情划过,不留痕迹,唯有稀疏地中海.哈哈,本篇文章主要是想分享下刚毕业入门找工作的一点小 ...

  8. MIT-6.824 操作系统 汇总

    MIT-6.828-JOS-环境搭建 ELF文件格式 lab1:C, Assembly, Tools, and Bootstrapping lab2:Memory management lab3:Us ...

  9. SpringCloud(三):服务消费以及负载均衡(RestTemplate+Ribbon)

    一.什么是Ribbon: Ribbon是Netflix发布的开源项目,主要功能是提供客户端的软件负载均衡算法. 将Netflix的中间层服务连接在一起.Ribbon客户端组件提供一系列完善的配置项如连 ...

  10. 区块链技术驱动金融.mobi

    链接:https://pan.baidu.com/s/1yY8f_PglsPoudb76nru9Ig 提取码:c58o 想一起学习区块链的朋友可以加好友一个学习哦,共同进步