视频链接:https://www.bilibili.com/video/BV1ux411d75J?p=155
点击观看视频
对象
1.内置对象
- JavaScript中的对象分为3种:自定义对象、内置对象、浏览器对象
- 前面两种对象是JS基础内容,属于ECMAScript;第三个浏览器对象属于我们JS独有的,我们JS API讲解
- 内置对象就是指JS语言自带的一些对象,这些对象供开发者使用,并提供了一些常用的或是最基本而必要的功能(属性和方法)
- 内置对象最大的优点就是帮助我们快速开发
2.Math 对象
2.1Math 概述
Math对象不是构造函数,它具有数学常数和函数的属性和方法。跟数学相关的运算(求绝对值,取整,最大值等)可以使用Math中的成员。
//1.绝对值方法
console.log(Math.abs(1)); //1
console.log(Math.abs(-1)); //1
console.log(Math.abs('-1')); //隐式转换 会把字符串型 -1 转换为数字型
console.log(Math.abs('link')); //NaN
//三个取整方法
//(1) Math.floor() 地板 向下取整 往小了取值
console.log(Math.floor(1.1)); //1
console.log(Math.floor(1.9)); //1
//(1) Math.ceil() ceil 天花板 向上取整 往最大了取值
console.log(Math.ceil(1.1)); //2
console.log(Math.ceil(1.9)) //2
//(3)Math.round() 四舍五入 其他数字都是四舍五入,但是.5特殊,它往大了取
console.log(Math.round(1.5)); //2
console.log(Math.round(1.4)) //1
console.log(Math.round(-1.5)); //-1
console.log(Math.round(-1.6)) //-2
2.2随机数方法 random()
Math.random()函数返回一个浮点,伪随机数在范围[0,1),也就是说,从0(包括0)往上,但是不包括1(排除1),然后您可以缩放到所需的范围。实现将初始种子选择到随机数生成算法,他不能被用户选择或重置。
//1.Math对象随机数方法 random()返回一个随机的小数 0 =< x < 1
//2.这个方法里面不跟参数
console.log(Math.random());
//4.我们想要得到两个数之间的随机整数,并且包含这2个整数
function getRandom(min,max){
return Math.floor(Math.random()*(max - min +1))+min;
}
//console.log(getRandom(1,12));
//随机点名
var arr = ['张三','李四','王五','李军','杨武','张飒'];
console.log(arr[getRandom(0,arr.length-1)]);
案例:
需求:
猜数字游戏
程序随机生成一个1~10之间的数字,并让用户输入一个数字,
1.如果大于该数字,就提示大了,继续猜
2.如果小于该数字,就提示小了,继续猜
3.如果等于该数字,就提示猜对了,结束程序。
案例分析:
1.随机生成一个1~100的整数,我们需要用到Math.random()方法。
2.需要一直猜到正确为止,所以一直循环。
3.用while循环合适更简单
4.核心算法:使用if else if多分支语句来判断大于、小于、等于。
//4.我们想要得到两个数之间的随机整数,并且包含这2个整数
function getRandom(min,max){
return Math.floor(Math.random()*(max - min +1))+min;
}
var suiji = getRandom(1,10); //随机生成一个1~10的数字
console.log(suiji);
do{
var result = parseInt(prompt('猜猜随机数,请输入一个1~10之间的数字'));
if(result>suiji && result>=1 && result<=10){
alert('数字大于随机数,继续猜');
}else if(result<suiji && result>=1 && result<=10){
alert('数字小于随机数,继续猜');
}else if(result==suiji && result>=1 && result<=10){
alert('猜对了');
}else{
alert('请输入一个1~10之间的数字')
}
}while(result != suiji);
3.日期对象
3.1 Date概述
- Date对象和Math对象不一样,他是一个构造函数,使用我们需要实例化后才能使用
- Date 实例用来处理日期和时间
3.2 Date()方法的使用
1.获取当前时间必须实例化
// Date() 日期对象 是一个构造函数 必须使用new 来调用创建我们的日期对象
var arr = new Array(); //创建了一个数组对象
var obj = new Object(); //创建了一个对象实例
//1.使用Date 如果没有参数 返回当前系统的当前时间
var date = new Date();
console.log(date);
2.Date()构造函数的参数
如果括号里面有时间,就返回参数里面的时间,列如日期格式字符串为’2019-10-1’,可以写成new Date(‘2019-10-1’)或者 new Date(‘2019/10/1’)。
//2.参数常用的写法 数字型 2019,10,01 或者是字符串型 ‘2019-10-1 8:8:8’
var date1 = new Date(2019,10,1);
console.log(date1); //返回的是11月 不是10月1日
var date2 = new Date('2019-10-1 8:8:8');
console.log(date2);
3.3 日期格式化
我们想要2019-8-8 8:8:8 格式的日期要怎么办?
需要获取日期指定的部分,使用我们要手动的得到这种格式。
方法名 | 说明 | 代码 |
---|---|---|
getFullYear() | 获取当年 | dObj.getFullYear() |
getMonth() | 获取当月(0-11) | dObj.getMonth() |
getDate() | 获取当天日期 | dObj.getDate() |
getDay() | 获取星期几(周日0 到 周六 6) | dObj.getDay() |
getHours() | 获取当前小时 | dObj.getHours() |
getMinutes() | 获取当前分钟 | dObj.getMinutes() |
getSeconds() | 获取当前秒钟 | dObj.getSeconds() |
//格式化日期
var date = new Date();
var year = date.getFullYear();
var month = date.getMonth()+1;
var dates = date.getDate();
var arr = ['星期日','星期一','星期二','星期三','星期四','星期五','星期六'];
var day = date.getDay();
console.log('今天是:'+year +'年'+month + '月'+dates+'日'+arr[day]);
案例:要求封装一个函数返回当前的时分秒 格式 08:08:08
//封装一个函数返回当前的时分秒 格式:08:08:08
function getTime(){
var time = new Date();
var h = time.getHours();
h = h<10 ? '0'+h : h;
var f = time.getMinutes();
f = f<10 ? '0'+f : f;
var m = time.getSeconds();
m = m<10 ? '0'+m : m;
return h+':'+f+':'+m;
}
console.log(getTime());
4.4 获取日期的总的毫秒形式
Date对象是基于1970年1月1日(世界标准时间)起的毫秒数
获得Date总的毫秒数 不是当前时间的毫秒数 而是距离1970年1月1号过了多少毫秒数
通过 valueOf() 和 getTime()方法获取
var date = new Date();
console.log(date.valueOf()); //就是我们现在时间 距离1970.1.1总的毫秒数
console.log(date.getTime());
2.简单的写法
+new Date(); //+new Date() 返回的就是总的毫秒数
var date1 = +new Date(); //+new Date() 返回的就是总的毫秒数
console.log(date1);
3.H5新增的 获取总的毫秒数 支持ie9版本以上
console.log(Date.now());