JS之内置对象

目录

1.什么是内置对象

2.Math对象

(1)最大值与最小值

(2)Math绝对值与三个取整方法

(3)随机数random()

3.日期对象

(1)日期格式化之年月日

(2)日期格式化之时分秒

(3)获取日期总的毫秒形式(时间戳)

(4)倒计时案例

4.数组对象

(1)数组创建的两种方式​编辑

(2)检测是否为数组

(3)添加数组元素

  (4)数组排序

(5)获取数组索引

(6)数组转化为字符串

5.字符串对象

(1)基本包装类型

(2)字符串的不可变性

(3)根据字符返回位置

 (4)根据位置返回字符(重点)

(5)字符串的操作方法(重点) 


1.什么是内置对象

2.Math对象

(1)最大值与最小值
 <script>
        console.log(Math.PI);
        // 一个属性,圆周率;
        console.log(Math.max(1,2,99));
        // 求最大值
        console.log(Math.min(1,2,6));
        // 求最小值;
          console.log(Math.max(1, 2, "hsbx"));
        //   存在非数字的则返回NaN;
         console.log(Math.max());
        //  如果没有参数,则返回-Infinity
    </script>

用对象封装自己的数学对象

 <scipt>
var myMath = {
         PI:3.1415916,
        max: function(){
           var max = arguments[0];
           for(var i = 1;i<arguments.length;i++){
                   if(max<arguments[i]){
                    max = arguments[i];
                   }
           }
           return max;
        },
         min: function () {
               var min = arguments[0];
               for (var i = 1; i < arguments.length; i++) {
                   if (min >arguments[i]) {
                       min = arguments[i];
                   }
               }
               return min;
       }
    }
    console.log(Math.max(1,22,66));
    console.log(Math.min(1, 22, 66));
 </scipt>
(2)Math绝对值与三个取整方法

  //    绝对值方法
    console.log(abs(-1)); 
    // 1
    console.log(abs(1)); 
    // 1
    console.log(abs('-1')); 
    //隐式转化会把字符串型'-1'转化为数字型
    console.log(abs('pink'));
    // NaN 

 // 2.三个取整方法
    // (1)Math.floor() 
    // 向下取整,往最小的取值  地板
    console.log(Math.floor(1.1));
    // 1
     console.log(Math.floor(1.9));
    //  1
     // (2)Math.ceil() 
        // 向上取整,往最大的取值   天花板
        console.log(Math.ceil(1.1));
        // 2
        console.log(Math.ceil(1.9));
        //  2
         // (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

(3)随机数random()
  //1.Math对象随机数方法   random() 返回一个随机的小数 x属于 [0,1)
        //2.这个方法里面不跟参数
        // 3.代码验证
        console.log(Math.random());
 // 得到两个数之间的随机整数,并且包含这两个数
        // Math.floor(Math.random()*(max-min+1))+min
        function getRandom(min,max){
            Math.floor(Math.random() * (max - min + 1)) + min
        }
        console.log(getRandom(1,10));

// 随机点名
         function getRandom(min, max) {
                Math.floor(Math.random() * (max - min + 1)) + min
            }
        var arr = ['zs','ls','zg','yg'];
        console.log(arr[getRandom(0,arr.length-1)]);

   <script>
    //  猜数字案例
     function getRandom(min, max) {
                Math.floor(Math.random() * (max - min + 1)) + min
            }
           var random=getRandom(1,10);
           while(true) {
            //死循环
            var num = prompt("请输入1-10之间的一个数字");
            if(num>random){
                alert("你猜大了");
            }
            else if(num < random){
                alert("你猜小了");
            }
            else{
                alert("你猜对了");
                break;
            }
           }
    </script>

3.日期对象
 <script>
        // Date()日期对象  是一个构造函数,必须使用new来调研创建我们的日期对象
        var arr = new Array();
        // 创建了一个数组对象
        var obj = new Object();
        // 创建一个对象实例
        // 1.使用Date
        var date = new Date();
        console.log(date);
    </script>

 // 1.使用Date  如果没有参数,返回当前系统的当前时间
        var date = new Date();
        console.log(date);
        // 2.参数常用的写法  数字型:2023,11,10  或者是字符串型:'2023-11-10 8:8:8'
           var date1 = new Date(2023, 11, 10);
           console.log(date1);
        //    返回的是10月,不是11月
         var date2 = new Date('2023-11-10 8:8:8');
         console.log(date2);

(1)日期格式化之年月日
    <script>
//  格式化日期 年月日
        var date = new Date();
        console.log(date.getFullYear());
        // 返回当前日期的年:2023年
         console.log(date.getMonth());
          // 返回当前日期的月:10月,不是11月  返回的月份小一个月
          console.log(date.getMonth()+1);
        //   加1即可正常
        console.log(date.getDate());
        // 返回的是几号
         console.log(date.getDay());
        //返回星期几(周0-周六)  
        // 写一个2023年11月10日星期三:
        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]);
        
    </script>

(2)日期格式化之时分秒
 <script>
// 格式化日期  时分秒
          var date = new Date();
           console.log(date.getHours());
           console.log(date.getMinutes());
           console.log(date.getSeconds());
        //    要求封装一个函数返回当前的时分秒   格式:08:08:08;
        function getTime(){
            var time = new Date();
            var h = time.getHours();
            h = h<10?'0'+h:h;
            var m = time.getMinutes();
            m = m < 10 ? '0' + m : m;
            var s = time.getSeconds();
            s = s < 10 ? '0' + s : s;
            return h+':'+m+':'+s;
            // 三元运算符
        }
        console.log(getTime());
            </script>

(3)获取日期总的毫秒形式(时间戳)

计算机起始时间:1970年1月1日

<script>
 // 获得Date总的毫秒数(时间戳)  不是当前时间的毫秒数,而是距离1970年1月1日过了多少毫秒数
        // 1、通过valueOf()  getTime()
         var date = new Date();
         console.log(date.valueOf());
         console.log(date.getTime());
        //  2.简单的写法(最常用)
         var date1 = +new  Date();
        //  +new Date() 返回的就是总的毫秒数
          console.log(date1);
        //   3.H5新增的方法,获得总的毫秒数
        console.log(Date.new());
            </script>
(4)倒计时案例

   <script>
 // 倒计时
          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);
            // parseInt作用是取整
            var h = parseInt(times / 60 / 60 % 24);
             d = d < 10 ? '0' + d : d;
            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('2023-11-11 18:00:00'));
            </script>

4.数组对象
(1)数组创建的两种方式

(2)检测是否为数组
       <script>
 // 检测是否为数组
        // (1) instanceof 运算符 它可以用来检测是否为数组
        var arr = [];
        var obj = {};
        console.log(arr instanceof Array);
        console.log(obj instanceof Array);
        // (2) Array.isArray(参数);
        console.log(Array.isArray(arr));
         console.log(Array.isArray(obj));
    </script>

(3)添加数组元素

增加:

// 1.push()在我们数组的末尾添加一个或者多个数组元素
        var arr = [1,2,3];
        arr.push(4,'pink');
        console.log(arr);
        // (1)push 是可以给数组追加新的元素
        // (2)push () 参数直接写数组元素就可以了
        // (3)push完毕后,返回的结果是新数组的程度
        // (4)原数组也会发生变化
        console.log('----------------------------');
        // 2.unshift 在我们数组的开头添加一个或者多个数组元素
        arr.unshift('red','purple');
        console.log(arr);
        // (1)unshift 是可以给数组前面追加新的元素
        // (2)unshift () 参数直接写数组元素就可以了
        // (3)unshift完毕后,返回的结果是新数组的程度
        // (4)原数组也会发生变化

删除:

<script>

 // 3.pop()它可以删除数组最后一个元素 
      var arr = [1,2,3];
      arr.push(4,'pink');
      arr.unshift('red','purple');
      arr.pop();
      console.log(arr);
    // (1)pop 是可以删除数组最后一个元素 一次只能删除一个
    // (2)pop () 没有参数
    // (3)pop完毕后,返回的结果是删除的那个元素
    // (4)原数组也会发生变化
     console.log('----------------------------');
    //  4.shift() 它可以删除数组的第一个元素
    arr.shift();
    console.log(arr);
        // (1)shift 是可以删除数组第一个一个元素 一次只能删除一个
        // (2)shift () 没有参数
        // (3)shift 完毕后,返回的结果是删除的那个元素
        // (4)原数组也会发生变化
    </script>

        <script> 
var arr = [1500,1200,2000,2100,1800];
        var newArr = [];
        for(var i = 0;i<arr.length;i++){
            if(arr[i]<2000){
                newArr.push();
            }
        }
        console.log(newArr);
    </script>
  (4)数组排序

  <script>
//  数组排序
            // 1.翻转数组
                function reverse(arr) {
                    if (arr instanceof Array) {
                        var newArry = [];
                        for (var i = arr.length - 1; i >= 0; i--) {
                            newArry[newArry.length] = arr[i];
                        }
                        return newArry;
                    }
                    else {
                        return '这个参数要求必须是数组格式[1,2,3]';
                    }
                }
                console.log(reverse([1, 2, 3]));
                console.log(reverse(1, 2, 3));
            // 2.数组排序(冒泡排序)
            var arr1 = [3,4,7,1];
            arr1.sort();
            console.log(arr1);
      

    </script>

冒泡排序的特殊情况:

var arr1 = [13,4,77,1,7];
            arr1.sort();
            console.log(arr1);
//   出现双位数时,sort会优先排序最左边的数字;

// 解决方案:(固定写法)
            var arr1 = [13, 4, 77, 1, 7];
                arr1.sort(function(a,b){
                      return a - b;
                    //   按照升序的顺序排序,降序则是:b-a;
                })
                console.log(arr1);

(5)获取数组索引

var arr = ['pink','blue','red','green'];
    console.log(arr.indexOf('blue'));

返回值为:1

若同时存在两个blue:只返回第一个满足条件的索引号

若在该数组里面找不到元素,则返回值:-1

   // 数组去重
        function unique(arr2){
                var newArr2 = [];
                for (var i = 0; i < arr2.length; i++) {
                    if (newArr2.indexOf(arr2[i] === -1)) {
                        newArr2 .push(arr2[i]);
                    }

                }
                return newArr2;
}
     var demo = unique(['c', 'a', 'z', 'a', 'x', 'a', 'x', 'c', 'b']);   
       console.log(demo);

(6)数组转化为字符串

    <script>
// 数组转化为字符串
// 1.toString() 将我们的数组转化为字符串
      var arr = [1,2,3];
      console.log(arr.toString());
// 2.join(分隔符)
   var arr1 = ['greeen','pink','red'];
   console.log(arr1.join(' & '));
    </script>

5.字符串对象
(1)基本包装类型

(2)字符串的不可变性

(3)根据字符返回位置

 <script>
        var str = "oabcoefoxyozzopp";
        var index = str.indexOf('o');
        var num = 0
        while(index !== -1)  {
          console.log(index);
          num++
          index = str.indexOf('o',index + 1); 
        }
         console.log('o出现的次数是:' + num);
    </script>
 (4)根据位置返回字符(重点)

 

 

<script>
//1. 根据位置返回字符
           console.log('----------------');
           var str1 = 'andy';
           console.log(str1.charAt(3)); 
 //遍历所有的字符
        for(var i = 0;i<str1.length;i++){
            console.log(str1.charAt(i));
        }    
    </script>

 

 <script>
// 2.charCodeAt(index) 返回相应索引号的字符ASCII值 目的: 判断用户按下了哪个健
      console.log(str1.charCodeAt(0));
    </script>

(5)字符串的操作方法(重点) 

 

    <script>
//字符串操作方法
 //1。concat('字符串1','字符串2'......)  
 var str2 = 'andy';
 console.log(str2.concat('red'));
    </script>

 

    <script>
//  2.substr('截取的起始位置','截取几个字符')
   var str3 = '改革春风吹满地';
   console.log(str3.substr(2,2))
  //  第一个2是索引号的2,从第几个开始,第二个2是取几个字符
    </script>

若出现重复的字符则只会替换第一个字符

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值