day07 对象的方法
-
对象: 在JS中万物皆对象,可以将对象分为“内部对象”、“宿主对象”和“自定义对象”三种。
-
本地对象「内部对象」:JS中的内部对象包括Array、Boolean、Date、Function、Global、Math、Number、Object、RegExp、String,Error对象, 其中Global和Math这两个对象又被称为“内置对象”,这两个对象在脚本程序初始化时被创建,不必实例化这两个对象。
-
宿主对象(全局对象):宿主对象就是执行JS脚本的环境提供的对象,就是浏览器提供的对象,如window和document
-
自定义对象
-
-
api
-
API,全称Application Programming Interface,即应用程序编程接口。
-
说白了就是函数,但是这些函数都是封装好的,固定功能的,可以直接调用实现功能的。
-
例如遥控器,不同的按键不同的功能,都是提前定义好的
-
1.Math对象
-
取整
-
parseInt():向下取整
-
Math.floor() : 向下取整,舍弃小数部分
-
Math.ceil():向上取整,只要有小数就进位
-
Math.round():四舍五入
//1.取整 console.log(Math.floor(3.9999)); //3 往下取整,舍弃小数部分 console.log(Math.ceil(3.000009)); //4 往上取整,有小数就进位 console.log(Math.round(3.44444)); //3 四舍五入 console.log(Math.round(3.54444)); //4 四舍五入
-
-
随机数
-
Math.random() : 生成0-1范围的随机数,包括0,不包括1
-
0-x范围 Math.random()*(x+1)
//0-x 0-10 Math.random()*(x+1) console.log(Math.floor(Math.random()*(10+1)));
-
x-y范围 Math.random()*(y-x+1)+x
//x-y 20-50 Math.random()*(y-x+1)+x; console.log(Math.floor(Math.random()*31+20)); //0 ----- 20 //1 ----- 31+20 == 50.999 50
-
封装一个获取随机数函数
//封装一个函数,生成min-max之间的随机数 function getRandom(min,max){ return Math.floor(Math.random()*(max-min+1)+min); }
-
-
数学公式
-
Math.max() : 找出参数序列中的最大值
-
Math.min() : 找出参数序列中的最小值
-
Math.pow(x,y):计算x的y次方
-
Math.sqrt(x) : 开根号
-
Math.abs(s):取绝对值 永远为正
console.log(Math.max(4,6,9,2,6,1,3)); //最大值9 console.log(Math.min(4,6,9,2,6,1,3)); //最小值1 console.log(Math.pow(2,10)); //Math.pow(基数,次数) 1024 console.log(Math.sqrt(9)); //3 开根号 console.log(Math.abs(-10)); //取绝对值 10 正数
-
2.Date时间对象
2.1 创建时间对象
-
创建当前时间
//1.创建时间对象(获取当前计算机系统时间) var oDate = new Date(); //Tue Aug 17 2021 13:40:50 GMT+0800 (中国标准时间) console.log(oDate); //创建当前时间对象 (当前计算机这一秒的时间) setInterval(function () { //console.log(oDate); //时间对象创建好以后,就是这一秒的时间,固定的 }, 1000);
-
创建自定义时间
//1.2 创建未来的时间 var oDate1 = new Date(2021,8-1,21); //(年,月-1,日,时,分,秒) 时分秒默认是0,月份从0开始 console.log(oDate1); //Sat Aug 21 2021 00:00:00 GMT+0800 (中国标准时间) var oDate2 = new Date("2021 10/1,10:10:10"); //("年,月,日,时:分:秒"),可以用,/ - 空格隔开 console.log(oDate2); //Fri Oct 01 2021 10:10:10 GMT+0800 (中国标准时间) var oDate3 = new Date("Oct 1 2021"); console.log(oDate3); //Fri Oct 01 2021 00:00:00 GMT+0800 (中国标准时间)
3.2 时间对象方法
-
固定格式时间
console.log(oDate.toDateString()); //Tue Aug 17 2021 console.log(oDate.toLocaleDateString()); //2021/8/17 console.log(oDate.toTimeString()); //13:58:05 GMT+0800 (中国标准时间) console.log(oDate.toLocaleTimeString()); //下午1:58:42
-
获取单个时间
var y = oDate.getFullYear(); //获取年份 console.log(y); console.log(oDate.getMonth()+1); //月份 月份从0开始 console.log(oDate.getDate()); //日 console.log(oDate.getDay()); //星期 var week = ["星期天","星期一","星期二","星期三","星期四","星期五","星期六"]; console.log(week[oDate.getDay()]); console.log(oDate.getHours()); //小时 console.log(oDate.getMinutes()); //分钟 console.log(oDate.getSeconds()); //秒 console.log(oDate.getTime()); //获取时间戳 1970/1/1 - 现在的毫秒数
3.3 倒计时效果
-
倒计时效果实现原理: 创建当前时间和未来时间,计算两个时间时间差,再计算出具体的天小时等
-
实现
dao(); setInterval(dao, 1000) function dao() { //倒计时 = 未来的时间 - 现在的时间 //1.创建未来时间 var futureDate = new Date("2021,8,21,17:20:00"); //2.创建现在时间 var currentDate = new Date(); //3.时间差 = 未来的时间 - 现在的时间 时间戳 毫秒数 var time = Math.floor((futureDate - currentDate) / 1000); // 获取秒数 //4.换算 var tian = Math.floor(time / 86400); //天 console.log(tian); // var xiao = (time- tian*86400) / 3600; //小时 var xiao = Math.floor(time % 86400 / 3600); console.log(xiao); // var m = time % 86400 % 3600 / 60; 分钟 var m = Math.floor(time % 3600 / 60); console.log(m); var s = Math.floor(time % 60); //秒 console.log(s); document.body.innerHTML = "现在距离周六休息还剩:" + tian + "天" + xiao + "小时" + m + "分钟" + s + "秒" }
3.4 moment.js
-
作用:JavaScript 日期处理类库
-
日期格式化
<script src="./moment.js"></script> <script> console.log(moment().format("YYYY")); //年 console.log(moment().format("MM")); //自动补0 月 console.log(moment().format("DD")); //自动补0 日期 console.log(moment().format("dddd")); //Tuesday console.log(moment().format("HH")); //小时 console.log(moment().format("mm")); //分钟 console.log(moment().format("ss")); //秒 setInterval(function () { document.body.innerHTML = moment().format("YYYY年MM月DD日 HH:mm:ss"); }, 1000);
3.字符串对象
3.1 创建字符串对象
//string:包装类对象,字面量创建的 字符串不能说是一个真正的字符串对象, //调用字符串方法的时候,会暂时包装成String对象 //1.字面量 var str1 = "web1116"; console.log(str1); console.log(typeof str1); console.log(str1.charAt(1)); //e //2.关键字new 创建 var str2 = new String("web1116"); console.log(str2); console.log(typeof str2);
3.2 字符串属性
-
length : 获取字符串长度
3.3字符串属性
A.charAt()
语法:strObj.charAt(下标)
作用:获取对应下标位置的字符
B.charCodeAt(下标)
语法:strObj.charCodeAt(下标)
作用:获取对应下标字符的编码
//3. strObj.charCodeAt(下标) : 获取对应下标位置字符的编码 "0" -- 48 "A"--65 "a"--97 console.log(str.charCodeAt(2)); //51 //使用charCodeAt()挑字符串中数字,组成一个新的字符串 var s = "1q2qw3e4t57t9t"; var ss = ""; //依次判断字符串是否是数字,如果是就拼接到ss中 for(var i = 0;i<s.length;i++){ if(s.charCodeAt(i) >= 48 && s.charCodeAt(i) <= 57){ ss += s[i]; } } console.log(ss); //"1234579"
c.indexOf(searchValue,index)
语法:strObj.indexOf(searchValue,index)
-
作用:查询一个字符串在另一个字符串中首次出现的位置,出现返回对应的下标,没有返回-1
-
参数:
-
searchValue:必须的,需要查询的字符串
-
index:可选,开始查找的位置,默认是下标0
var str = "web1012web1012web"; var index = str.indexOf("10"); console.log(index);//3 var index = str.indexOf("17"); console.log(index);//-1 var index = str.indexOf("10",5); //从下标为5的位置开始查找 console.log(index); //10 //一般用于:看字符串中是否有某个特定的字符 例:验证小数 var str = "1256"; if(str.indexOf(".") != -1){ alert("小数") }else{ alert("整数") }
-
d.lastIndexOf(searchStr,index)
-
作用:查询一个字符串在另一个字符串中最后一次出现的位置,出现返回对应的下标,没有返回-1
-
参数:
-
searchStr:必须的,需要查询的字符串
-
index:可选,开始查找的位置,默认是str.length 从后往前找
var str = "webuiwebuiweb"; console.log(str.lastIndexOf("ui")); //8
-
E.substring(start,end)
-
作用:截取下标在start和end之间的字符串,包括开始start 不包括结束end
-
参数:
-
start : 必需,表示从下标为start的位置开始截
-
end:可选,默认是最后 str.length
var str = "431102200309091212"; //1.strObj.substring(start,end) : 从start开始到end结束,截取一串连续的字符串,包括start不包括end var age = str.substring(6,10); console.log(2021-age,str); //2003 var s = str.substring(6); console.log(s); //"200309091212"
-
F.strObj.slice(start[,end])
-
作用:截取下标在start和end之间的字符串,包括开始start 不包括结束end
-
参数:
-
start : 必需,表示从下标为start的位置开始截
-
end:可选,默认是最后 str.length
var str = "431102200309091212"; var age = str.slice(6,10); console.log(2021-age,str); //2003
-
-
区别:
//区别: var str = "abcdefg"; console.log(str.substring(5,2)); //大小会自动调整,"cde" console.log(str.slice(5,2)); //大小不会自动调整,"" console.log(str.substring(5,-1)); //负数默认为0 5,0 abcde console.log(str.slice(5,-1)); //负数表示截取到倒数第几个 ”f" //遍历打印类型 var arr = ["[object Object]","[object Array]","[object Function]","[object String]"]; for(var i = 0;i<arr.length;i++){ console.log(arr[i].slice(8,-1)); }
G.strObj.substr(start[,length])
-
作用:截取某个长度的字符
-
参数
-
start : 必需,表示从下标为start的位置开始截
-
length:截取几个
console.log(str.substr(1,2)); //“bc” var str = "431102200312127777"; //计算年龄 console.log(2021 - str.substr(6,4));
-
#####