JS内置对象及应用

内置对象

1. 对象

对象是由属性和方法组成的,使用点语法访问(.语法)

2. Array数组

  • 创建
    var arr=[] //定义数组
var arr=['string',123,true] //赋值
//实例化对象
var new Array = [];
arr[0] = 'abc'
arr[1] = 'def'
  • 特点
    • 数组用于存储若干数据,自动为每位数据分配下标

    • 数组中的元素不限数据类型,长度可以动态调整

    • 动态操作数组:根据元素下标读取或或修改数组元素,arr[index]

  • 属性和方法
    1. 属性:length表示数组长度

    2. 方法:

      • push(data)

        在数组末尾添加一个或多个元素,多个元素之间使用逗号隔开,返回数组的新的长度

        var arr = [11,22,33];
        arr.push(44)
        console.log(arr);//11,22,33,44
      • pop()

        删除数组的最后一个元素,并将被删除的元素返回

        var arr = [11,22,33,44];
        var result = arr.pop();
        console.log(result); // 44

         

      • unshift(data)

        向数组开头添加一个或多个元素,并返回新的数组长度

        var arr = [11,22,33];
        arr.unshift(55,66);
        console.log(arr); // 55 66 11 22 33

         

      • shit()

        可以删除数组的第一个元素并返回

        var arr = [55,66,11,22,33];
        arr.shift();
        console.log(arr) // 66 11 22 33

         

      • slice(start,end)

        1. 可以用来已有的数组中提取指定的元素

        2. 该方法不会影响到原数组

        3. 参数:

          • 第一个,截取开始的位置的索引,包含开始索引

          • 第二个,截取结束的位置的索引,不包含结束索引(第二个参数可以不写,此时会截取开始往后的所有元素)

        4. 索引可以传递一个负值,若果传递一个负值,则从后往前计算

          • -1 倒数第一个

          • -2 倒数第二个

          • ......

        var arr2 = ['孙悟空','猪八戒','沙和尚','唐僧','白龙马','红孩儿',"牛魔王"];

              var result2 = arr2.slice(1,4); // 猪八戒 沙和尚
              result2 = arr2.slice(3) // 沙和尚
              result2 = arr2.slice(1,-2) // 猪八戒
              console.log(result2);

         

      • splice()

        删除数组中的指定元素

        使用splice()会影响到原数组,会将指定元素从数组中删除并将删除的元素作为返回值返回

        参数:

        * 第一个,表示开始位置的索引

        * 第二个,表示删除的数量

        * 第三个及以后

            *    可以传递一些元素,这些元素将会自动插入到开始位置的索引前面
        var arr2 = ['孙悟空','猪八戒','沙和尚','唐僧','白龙马','红孩儿',"牛魔王"];
        var result3 = arr2.splice(0,3,'铁扇公主');

              console.log(arr2); // 铁扇公主 唐僧 白龙马 红孩儿 牛魔王

              console.log(result3); // 孙悟空 猪八戒 沙和尚

              // 例:去除数组中的重复数字

              // 创建一个数组

              var num = [1,2,4,5,5,6,8,8,9];

              for(var i = 0 ; i < num.length ; i++){
                   for(var j = i+1 ; j < num.length ; j++){
                      if(num[i] == num[j]){
                          num.splice(j,1);
                          j--; // 让j自减防止连续相同的数字出现
                      }
                  }
              }  
              console.log(num);
      • concat

        * concat()方法可以连接两个或多个数组,并将新的数组返回

        * 该方法不会影响到原数组

        * 也可以在数组后连接单个元素

        var arr = ['孙悟空','猪八戒','沙和尚'];
        var arr2 = ['唐僧','白龙马'];
        var arr3 = ['红孩儿','牛魔王'];
        var result = arr.concat(arr2,arr3,'二郎神','太上老君');
      • join()

        * 该方法可以将数组转换为一个字符串

        * 该方法不会对原数组产生影响,而是将转换后的字符串作为结果返回

        * 在join()中可以指定一个字符串作为参数,这个字符串将会成为数组中元素的连接符

        * 如果不指定连接符,则默认使用逗号作为连接符

        result1 = arr.join()
        result2 = arr.join('-')
        console.log(result1); // 孙悟空,猪八戒,沙和尚
        console.log(result2); // 孙悟空-猪八戒-沙和尚
      • reverse()

        * 该方法用来翻转数组(前面的到后面,后面的到前面)

        * 该方法会直接修改原数组

        arr2.reverse();
        console.log(arr2); // 白龙马,唐僧
      • sort()

        * 可用来对数组的排序

        * 会影响原数组,默认按照Unicode编码排序

        * 即使对纯数字的数组排序,也会使用Unicode编码排序

        * 所以对纯数字数组排序时,容易出现错误的结果

        * 可以自己制定排序规则

        - 在sort()添加一个回调函数,来指定排序规则

        - 回调函数中需要定义两个参数,浏览器会分别使用数组中的元素作为实参去调用回调函数

        * 浏览器会根据回调函数的返回值来决定元素的顺序

        - 返回一个大于0的值,则元素交换位置

        - 返回一个小于0的值,则元素位置不变

        - 返回一个等于的值,则认为两元素相等,位置不变

        * 升序排列 : a-b

        * 降序排列 : b-a

        var num = [2,5,8,2,1,33,11];

        var num2 = [2,5,8,2,1,33,11];

        console.log(num.sort()); //1, 11, 2, 2, 33, 5, 8

        num2.sort(function(a,b){
        if(a>b){
        return -1;
        }else if(a<b){
        return 1;
        }else{
        return 0;
        }
        //升序排列 return a-b
        //降序排列 return b-a
        })
  • String对象
    1. 创建

      var str = "100";
      var str2 = new String("hello");
    2. 特点

      1. 字符串采用数组结构存储每位字符,自动为字符分配下标,从0开始

    3. 属性

      1. length :获取字符串长度

    4. 方法

      1. toUpperCase() - toLowerCase

        //字母大小写转换
        //返回转换后的字符,不影响原始字符
        var str_1"abcd"
        var str_2="EFGH"
        var result_1 = str_1.toUpperCase()
        var result_2 = str_1.toLowerCase()
        console.log(str_1) // 'abcd'
        console.log(result_1) // 'ABCD'
        console.log(str_2) // 'EFGH'
        console.log(result_2) // 'efgh'
      2. charAt(index)

        //获取指定下标的字符
        //charCodeAt(index) 获取指定下标的字符编码

        var str = 'abcd'
        console.log(str.charAt(1)) // b
      3. indexOf(str,from_index)

        • 获取指定字符的下标,从前往后,找到即返回

        • str - 需要查找的字符

        • from_index - 起始查询的下标,默认为 0 下标开始

        • 返回 - 返回指定查询的字符下标,失败返回 -1

        var str = 'abcdef'
        console.log(str.indexOf('c',0)) // 3
        console.log(str.indexOf('r',0)) // -1

        // lastIndexOf(str,from_index) - 从后往前找; 获取指定字符最后一次出现的下标,从后向前查找,找到即返回
      4. substring(start_index,end_index)

        • 根据指定的下标范围截取字符串,start_Index ~ end_Index

        • start_index : 开始下标

        • end_index : 结束下标,可省略,省略表示截止末尾

          //结果不包含结尾下标对应的字符,省略endindex包含
          var str = 'abcdefg'
          console.log(str.substring(1,3)) // 'bc'
          console.log(str.substring(3)) // 'defg'
      5. substr(start_index,length)

        • 根据下标截取指定字符长度

        • start_index:起始下标

        • length:从起始下标开始,截取的长度

          // 结果包含起始下标的字符
          var str = 'abcdefg'
          console.log(str.substr(1,3)) // 'b,c,d'
      6. split(param)

        • 将字符串按照指定的字符进行分割,以数组形式返回分割结果

        • 指定分隔符,必须是字符串中存在的字符,如果字符串中不存在,分割失败,仍然返回数组

          var str = '123&as&d&?yop' // 以'&'分割
          console.log(str.split('&')) // 123asd?yop
  • Math 对象
    1. 定义

      1. Math对象只要提供一些数学运算方法

    2. 属性

      1. 圆周率:Math.PI

      2. 自然对数:Math.E

    3. 方法

      1. Math.random(); 生成0-1之间的随机数

      2. Math.ceil(x); 对x向上取整,忽略小数位,整数位+1

      3. Math.floor(x); 对x向下取整,舍弃小数位,保留整数位

      4. Math.round(x); 对x四舍五入取整数

      5. parseInt(string, radix) ;解析一个字符串,并返回一个整数

        • 遇到小数点会停止解析,因为小数点并不是有效的数字字符

        • string 必需。要被解析的字符串。radix 可选。表示要解析的数字的基数。即进制:该值介于 2 ~ 36 之间

        • 当参数 radix 的值为 0,或没有设置该参数时,parseInt() 会根据 string 来判断数字的基数

        • 如果 string 以 “0x” 开头,parseInt() 会把 string 的其余部分解析为十六进制的整数

        • 如果 string 以 0 开头,那么 ECMAScript v3 允许 parseInt() 的一个实现把其后的字符解析为八进制或十六进制的数字

        • 如果 string 以 1 ~ 9 的数字开头,parseInt() 将把它解析为十进制的整数

        • 只有字符串中的第一个数字会被返回

        • 开头和结尾的空格是允许的

        • 如果字符串的第一个字符不能被转换为数字,那么 parseFloat() 会返回 NaN

  • Date 日期对象
    1. 创建

      var date1 = new Date(); //定义当前的日期的对象
      var date2 = new Date("2011/11/11");
      var date3 = new Date("2011/11/11 11:11:11");
    2. 方法

      • 读取或设置当前时间的毫秒数(时间戳):getTime()

      • getFullYear()

      • getMonth()

      • getDate()

        	var dt=new Date()
        console.log(dt) //获取当前日期
        console.log(dt.getTime())
        //中国的时间与规定的相差一个月,要获取当前月份要+1
        console.log(dt.getMonth()+1)
        console.log(dt.getFullYear())
        //获取当前时间的 时 分 秒
        console.log(dt.getHours(),dt.getUTCMinutes(),dt.getSeconds())
      •  

posted @ 2021-11-15 16:21  TM_cc  阅读(45)  评论(0)    收藏  举报