学js的第7天

 

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 日期处理类库

  • 网址:http://momentjs.cn/

  • 日期格式化

    <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));

#####

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值