11 内置对象

  JavaScript 中的对象分为3种:自定义对象 、内置对象、 浏览器对象。前面两种对象是 JavaScript 基础内容,属于ECMAScript;第三个浏览器对象属于 JS 独有的, 我们JS API 讲解。内置对象就是指 JS 语言自带的一些对象,这些对象供开发者使用,并提供了一些常用的或是最基本而必要的功能(属性和方法),内置对象最大的优点就是帮助我们快速开发。JavaScript 提供了多个内置对象:Math、 Date 、Array、String等

11.1 Math对象

  • Math 概述
    • Math 对象不是构造函数,它具有数学常数和函数的属性和方法。跟数学相关的运算(求绝对值,取整、最大值等)可以使用 Math 中的成员
      Math.PI // 圆周率
      Math.floor() // 向下取整
      Math.ceil() // 向上取整
      Math.round() // 四舍五入版 就近取整 注意 -3.5 结果是 -3
      Math.abs() // 绝对值
      Math.max()/Math.min() // 求最大和最小值
      
  • 随机数方法 random()
    • random() 方法可以随机返回一个小数,其取值范围是 [0,1),左闭右开 0 <= x < 1
      //得到一个两数之间的随机整数,包括两个数在内
      function getRandom(min, max) {
          return Math.floor(Math.random() * (max - min + 1)) + min;
      }
      

11.2 日期对象

  • Date 概述
    • Date 对象和 Math 对象不一样,他是一个构造函数,所以我们需要实例化后才能使用
    • Date 实例用来处理日期和时间
  • Date()方法的使用
    • 获取当前时间必须实例化
        var now = new Date();
        console.log(now);
      
    • Date() 构造函数的参数
      • 如果括号里面有时间,就返回参数里面的时间。例如日期格式字符串为‘2019-5-1’,可以写成new Date('2019-5-1')或者 new Date('2019/5/1')
      • 如果Date()不写参数,就返回当前时间
      • 如果Date()里面写参数,就返回括号里面输入的时间
  • 日期格式化
方法名 说明 代码
getFullYear() 获取当年 dObj.getFullYear()
getMonth() 获取当月(0-11) dObj.getMonth()
getDate() 获取当天日期 dObj.getDate()
getDay() 获取星期几(周日0到周六6) dobj.getDay)
getHours() 获取当前小时 dObj.getHours()
getMinutes() 获取当前分钟 dObj.getMinutes()
getSeconds() 获取当前秒钟 dObj.getSeconds()
  • 获取日期的总的毫秒形式
    • 我们经常利用总的毫秒数来计算时间,因为它更精确
      // 实例化Date对象
      var now = new Date();
      // 1. 用于获取对象的原始值
      console.log(date.valueOf())
      console.log(date.getTime())
      // 2. 简单写可以这么做
      var now = + new Date();
      // 3. HTML5中提供的方法,有兼容性问题
      var now = Date.now();
      

11.3 数组对象

  • 数组对象的创建
    • 创建数组对象的两种方式:字面量方式、new Array()

11.3.1 检测是否为数组

  • instanceof 运算符,可以判断一个对象是否属于某种类
  • Array.isArray()用于判断一个对象是否为数组,isArray() 是 HTML5 中提供的方法
    var arr = [1, 23];
    var obj = {};
    console.log(arr instanceof Array); // true
    console.log(obj instanceof Array); // false
    console.log(Array.isArray(arr)); // true
    console.log(Array.isArray(obj)); // false
    

11.3.2 添加删除数组元素的方法

方法名 说明 返回值
push(参数1....) 末尾添加一个或多个元素,注意修改原数组 并返回新的长度
pop() 删除数组最后一个元素,把数组长度减1无参数、修改原数组 返回它删除的元素的值
unshift(参数1...) 向数组的开头添加一个或更多元素,注意修改原数组 并返回新的长度
shift() 删除数组的第一个元素,数组长度减1无参数、修改原数组 并返回第—个元素的值

11.3.3 数组排序

方法名 说明 是否修改原数组
reverse() 颠倒数组中元素的顺序,无参数 该方法会改变原来的数组返回新数组
sort() 对数组的元素进行排序 该方法会改变原来的数组返回新数组
var arr = [1, 64, 9, 6];
arr.sort(function(a, b) {
    return b - a; // 降a序
    // return a - b; // 升序
});
console.log(arr);

11.3.4 数组索引方法

方法名 说明 返回值
indexOf() 数组中查找给定元素的第一个索引 如果存在返回索引号如果不存在,则返回-1
lastIndexOf() 在数组中的最后一个的索引 如果存在返回索引号如果不存在,则返回-1

11.3.5 数组转换为字符串

方法名 说明 返回值
toString() 把数组转换成字符串,逗号分隔每一项 返回一个字符串
join('分隔符') 方法用于把数组中的所有元素转换为一个字符串 返回一个字符串

11.3.6 数组连接、截取和删除

方法名 说明 返回值
concat() 连接两个或多个数组不影响原数组 返回一个新的数组
slice() 数组截取slice(begin,end) 返回被截取项目的新数组
splice() 数组删除splice(第几个开始,要删除个数) 返回被删除项目的新数组注意,这个会影响原数组

11.4 字符串对象

11.4.1 基本包装类型

  • 基本包装类型就是把简单数据类型包装成为复杂数据类型,这样基本数据类型就有了属性和方法
      // 下面代码有什么问题?
      var str = 'andy';
      console.log(str.length);
    
  • 按道理基本数据类型是没有属性和方法的,而对象才有属性和方法,但上面代码却可以执行,这是因为 js 会把基本数据类型包装为复杂数据类型,其执行过程如下 :
      // 1. 生成临时变量,把简单类型包装为复杂数据类型
      var temp = new String('andy');
      // 2. 赋值给我们声明的字符变量
      str = temp;
      // 3. 销毁临时变量
      temp = null;
    

11.4.2 字符串的不可变

  • 指的是里面的值不可变,虽然看上去可以改变内容,但其实是地址变了,内存中新开辟了一个内存空间
      var str = 'abc';
      str = 'hello';
      // 当重新给 str 赋值的时候,常量'abc'不会被修改,依然在内存中
      // 重新给字符串赋值,会重新在内存中开辟空间,这个特点就是字符串的不可变
      // 由于字符串的不可变,在大量拼接字符串的时候会有效率问题
      var str = '';
      for (var i = 0; i < 100000; i++) {
          str += i;
      }
      console.log(str); // 这个结果需要花费大量时间来显示,因为需要不断的开辟新的空间
    

11.4.3 根据字符返回位置

  • 字符串所有的方法,都不会修改字符串本身(字符串是不可变的),操作完成会返回一个新的字符串
方法名 说明
indexOf('要查找的字符",开始的位置) 返回指定内容在元字符串中的位置,如果找不到就返回-1,开始的位置是index索引号
lastIndexOf() 从后往前找,只找第一个匹配的

11.4.4 根据位置返回字符

方法名 说明 使用
charAt(index) 返回指定位置的字符(index字符串的索引号) str.charAt(0)
charCodeAt(index) 获取指定位置处字符的ASCII码(index索引号) str.charCodeAt(0)
str[index] 获取指定位置处字符 HTML5,IE8+支持和charAt()等效

11.4.5 字符串操作方法

方法名 说明
concat(str1,str2,str3...) concat()方法用于连接两个或多个字符串。拼接字符串,等效于+,+更常用
substr(start,length) 从start位置开始(索引号),length 取的个数重点记住这个
slice(start,end) 从start位置开始,截取到end位置,end取不到(他们俩都是索引号)
substring(start,end) 从start位置开始,截取到end位置,end取不到基本和slice相同但是不接受负值
  • replace()方法
    • replace() 方法用于在字符串中用一些字符替换另一些字符,其使用格式如下:
      replace(被替换的字符串, 要替换为的字符串);
      
  • split()方法
    • split()方法用于切分字符串,它可以将字符串切分为数组。在切分完毕之后,返回的是一个新数组,例如下面代码:
      var str = 'a,b,c,d';
      console.log(str.split(',')); // 返回的是一个数组 [a, b, c, d]
      
  • toUpperCase() //转换大写
  • toLowerCase() //转换小写

results matching ""

    No results matching ""