js内置对象
JavaScript中的对象分为3中;自定义对象/内置对象,浏览器对象
Math对象
Math.PI; 圆周率
Math.floor();向下取整
Math.ceil();向上取整
Math.max();最大值
Math.min();最小值
Math.randon();随机数
得到一个数之间的随机整数,包括两个数在内
function getRandomIntInclusive(min,max){ return Math.floor(Math.random()*(max - min + 1)) + min; }
Date() 日期对象 是一个构造函数 必须使用new 来调用创建
var date = new Date(); console.log(date);//Wed Dec 04 2019 20:17:25 GMT+0800 (中国标准时间) var date1 = new Date(2019,10,1);//数字型 Fri Nov 01 2019 00:00:00 GMT+0800 (中国标准时间) console.log(new Date('2019-10-1 20:25:30'));//Tue Oct 01 2019 20:25:30 GMT+0800 (中国标准时间)
Date()方法的使用
- 获取当前时间必须实例化
- Date()构造函数的参数
- 如果括号里面有时间,就返回参数里面的时间。例如日期格式字符串为‘2019-5-1’,可以写成new Date('2019-5-1')或者new Date('2019/5/1')
日期格式化
console.log(console.log(new Date().getFullYear());//输出当前年
方法名 说明 代码 getFullYear() 获取当前年 new Date().getFullYear(); getMonth() 获取当前月(0-11) new Date().getMonth(); getDate() 获取当天日期 new Date().getDate(); getDay() 获取星期几(周日0 到周六6) new Date().getDay(); getHours() 获取当前小时 new Date().getHours(); getMinutes() 获取当前分钟 new Date().getMinutes(); getSeconds() 获取当前秒钟 new Date().getSeconds();
console.log(new Date().valueOf());//1575543088420 现在据1970.01.01 00:00:00 总的毫秒数 console.log(new Date().getTime()); console.log(+new Date()); console.log(Date.now());
倒计时案例
核心算法:输入的时间减去现在的时间就是剩余的时间,及倒计时,但是不能拿着时分秒相减,比如05分减去25分,结果会是负数。
用时间戳来做。用户输入时间总的毫秒数减去现在时间的总的毫秒数,得到的就是剩余时间的毫秒数。
把剩余时间总的毫秒数转为天、时、分、秒(时间戳转换为时分秒)
转换公式:
- d=parseInt(总秒数/60/60/24);//计算天数
- h=parseInt(总秒数/60/60%24);//计算小时
- m=parseInt(总秒数/60%60);//计算分数
- s=parseInt(总秒数%60);//计算当前秒数
function conutDown(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 + '秒'; }
Array()
创建数组的方式
- 利用字面量
- var arr =[];
- 利用new Array()
- var arr=new Array(); //创建了一个空数组
- var arr=new Array(2); //表示数组长度为2 里面有2个空的数组元素
- var arr=new Array(2,3); //等价于[2,3] 这样写表示 里面有2个数组元素 是 2和3
- 利用字面量
检测是否为数组
instanceof 元算符 它可以用来检测是否为数组
var arr=[]; var obj={}; console.log(arr instanceof Array); //true console.log(obj instanceof Array); //false
Array.isArray(参数);
添加删除数组元素方法
push() 在数组的末尾 添加一个或多个数组元素
var arr =[1,2,3]; arr.push(4);
【注意】
- push 是可以给数组追加新的元素
- push()参数直接写 数组元素
- push 完毕之后 ,返回的结果是 新数组的长度
- 原数组也会发生变化
unshift 在数组的开头 添加一个或多个数组元素
方法名 说明 返回值 push(参数1.。。) 在数组的末尾 添加一个或多个数组元素 新数组的长度 pop() 删除数组最后一个元素,把数组长度减一 无参数 修改原数组 返回删除的元素值 unshift(参数1.。) 在数组的开头 添加一个或多个数组元素 返回新数组的长度 shift() 删除数组的第一个元素,数组长度减1 无参数/修改原数组 并返回第一个元素的值
数组排序
方法名 说明 是否修改原数组 reverse() 点到数组中元素的顺序,无参数 该方法会改变原来的数组 返回新数组 sort() 对数组的元素进行排序 该方法会改变原来的数组 返回新数组 数组索引方法
方法名 说明 返回值 indexOf() 数组中查找给定元素的第一个索引 如果存在返回索引号 如果不存在,则返回-1 lastIndexOf() 在数组中的最后一个索引 如果存在返回索引号 如果不存在,则返回-1 数组去重案例
//核心算法:我们遍历就数组,然后拿就数组元素去查询新数组,如果该元素中在新数组中没有添加,有就不添加 function unique(arr){ var newArr=[]; for (var i = 0 ; i <arr.length; i++){ if(newArr.indexOf(arr[i] === -1)){ newArr.push(arr[i]); } } return newArr; }
数组转换为字符串
方法名 说明 返回值 toString() 把数组转换成字符串,逗号分隔每一项 返回一个字符串 join('分隔符') 方法用于把数组中的所有元素转换为一个字符串
字符串对象
字符串所有的方法,都不会修改字符串本身(字符串是不可变的)
var str = "abcd,abcd"; console.log(str.indexOf('c'));//2
案例:返回某个字符出现的位置以及次数
核心算法:先查找第一个o出现的位置
然后 只要indexOf返回的结果不是-1就继续往后查找
因为indexOf只能查找到第一个,所以后面的查找,利用第二个参数,当前索引加1,从而继续查找
var str="abcoefoxyozzopp"; var index =str.indexOf('o'); while(index !== -1){ console.log(index); str.indexOf('o',[index+1]); }
根据位置返回字符(重点)
方法名 说明 使用 charAt(index) 返回指定位置的字符(index 字符串的索引号) str.charAt(0) charCodeAt(index) 获取指定位置处字符的ASCII码(index索引号) str.charCodeAt(0) str[index] 获取指定位置处字符 HTML5,IE8+和charAt()等效 字符串操作方法
方法名 说明 concat(str1,str2,str3...) concat()方法用于连接两个或多个字符串。拼接字符串,等效与+,+更常用 substr(start,length) 从start位置开始(索引号),length取的个数 slice(start,end) 从start位置开始,截取end位置,end取不到 substring(start,end) 从start位置开始,截取到end位置,end取不到 基本和slice相同 但是不接受负值 替换字符
- replace(‘被替换的字符’,‘替换的字符’)
字符串转换为数组 split("分隔符")