JavaScript内置对象

200 阅读6分钟

目标

  • 能够说出什么是内置对象
  • 能够根据文档查询指定API的使用方法
  • 能够使用Math对象的常用方法
  • 能够使用Date对象的常用方法
  • 能够使用Array对象的常用方法
  • 能够使用String对象的常用方法

目录

  • 内置对象
  • 查文档
  • Math对象
  • 日期对象
  • 数组对象
  • 字符串对象

1.内置对象

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

2.查文档

2.1 MDN

学习一个内置对象的使用,只要学会其常用成员的使用即可,我们可以通过查文档学习,可以通过MDN/W3C来查询。 Mozilla开发者网络(MDN)提供了有关开放网络技术(Open Web)的信息,包括HTML、CSS和万维网及HTML5应用的API。

官网:developer.mozilla.org/zh-CN/

2.2 如何学习对象中的方法

  1. 查阅该方法的功能
  2. 查看里面参数的意义和类型
  3. 查看返回值的意义和类型
  4. 通过demo进行测试

3.Math对象

MDN文档:developer.mozilla.org/zh-CN/docs/…

Math数学对象 不是一个构造函数,所以不需要new来调用,而是直接使用里面的属性和方法即可。

console.log(Math.PI);// 一个属性 圆周率
      console.log(Math.max(1,99,33));
      console.log(Math.max(-1,-10));
      console.log(Math.max(1,99,'刘德华'));// NaN
      console.log(Math.max());// -Infinity

3.1 Math概述

Math对象不是构造函数,它具有数学常数和函数的属性和方法。跟数学相关的运算(求绝对值、取整、最大值等)可以使用Math中的成员。

     Math.PI; // 圆周率
     Math.floor(); // 向下取整
     Math.ceil(); // 向上取整
     Math.round(); // 四舍五入版就近取整 注意 -3.5 结果是 -3
     Math.abs(); // 绝对值
     Math.max();/Math.min() //求最大和最小值

3.2 随机数方法random()

  1. Math对象随机数方法random() 返回一个随机的小数0 =< x <1
  2. 这个方法里面不跟参数,返回一个浮点类型的随机小数
  3. 代码验证
     console.log(Math.random());
  1. 得到两个数之间的随机整数 并且包含这两个数
Math.floor(Math.random() * (max - min + 1)) + min;

4. 日期对象

4.1 Date概述

  • Date对象和Math对象不一样,他是一个构造函数,所以我们需要实例化后才能使用
  • Date实例用来处理日期和时间

4.2 Date()方法的使用

1.获取当前时间必须实例化

var now = new Date();
console.log(now);

2.Date()构造函数的参数

如果括号里面有时间,就返回参数里面的时间。例如日期格式字符串为'2019-5-1',可以写成new Date('2019-5-1'),或者new Date('2019/5/1')

4.3 日期格式化

我们想要2019-8-8 8:8:8格式的日期,要怎么办? 需要获取日期指定的部分,所以我们要手动的得到这种格式。

4.4 获取日期的总的毫秒形式

Date对象是基于1970年1月1日(世界标准时间)起的毫秒数。 我们经常利用总的毫秒数来计算时间,因为它更精确。

  1. 通过 valueOf() getTime()
    var date = new Date();
    console.log(date.valueOf()); // 当前时间距离1970.1.1的毫秒数
    console.log(date.getTime()); 
  1. 简单的写法(常用)
    var date1 = +new Date(); // 返回的就是总的毫秒数,是最常用的写法     
    console.log(date1);
  1. H5 新增的 获得总的毫秒数
    console.log(Date.now());

5.数组对象

5.1 数组对象的创建

创建数组对象的两种方式

  • 字面量方式
  • new Array()

5.2 检测是否为数组

  1. instanceof 运算符 它可以用来检测是否为数组
      var arr = [];
      var obj = {};
      console.log(arr instanceof Array);
      console.log(obj instanceof Array);
  1. Array.isArray(参数); H5新增的方法, ie9以上版本才支持
console.log(Array.isArray(arr));
console.log(Array.isArray(obj));

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

5.4 数组排序

5.5 数组索引

注意:
  • indexOf()是从前往后查,查到一个就返回,查不到返回-1
  • lastindexOf()是从后往前查,查到一个就返回,查不到返回-1

5.6 数组转换为字符串

5.7 课下查询(删除指定的数组元素)

  • slice()和splice目的基本相同,建议同学们重点看下splice()

6.字符串对象

6.1 基本包装类型

为了方便操作基本数据类型,JavaScript还提供了三个特殊的引用类型:String、Number和Boolean。 基本包装类型就是把简单数据类型包装成为复杂数据类型,这样基本数据就有了属性和方法。

// 下面代码有什么问题?
var str = 'andy';
console.log(str.length);

按道理数据类型是没有属性和方法的,而对象才有属性和方法,但上面代码却可以执行,这是因为jsh会把基本数据类型包装成为复杂数据类型,其执行过程如下:

	// 1. 生成临时变量,把简单数据类型包装为复杂数据类型
     var temp = new String('andy');
     // 2. 把临时变量的值 给 str
     str = temp;
     // 3. 销毁这个临时变量
     temp = null;

6.2 字符串的不可变

指的是里面的值不可变,虽然内容看上去可以改变,但其实改变的是地址,内存中新开辟了一个内存空间。

 var str = 'andy';
     console.log(str);
     str = 'red';
     console.log(str);
     // 因为我们字符串的不可变所以不要大量的拼接字符串
     var str = '';
     for (var i = 1; i <= 10000000; i++) {
       str += i;
     }
     console.log(str);// 这个结果需要花费大量的时间来显示,因为需要不断的开辟新的空间

6.3 根据字符返回位置

字符串所有的方法,都不会修改字符串本身(字符串是不可变的),操作完成会返回一个新的字符串。

6.4 根据文字返回字符(重点)

6.5 字符串操作方法(重点)

6.6 课下查阅

  • toUpperCase() // 转换大写
  • toLowerCase() // 转换小写

6.7 字符串拆分

split() 方法使用指定的分隔符字符串将一个String对象分割成子字符串数组,以一个指定的分割字串来决定每个拆分的位置。

str.split('指定字符');

6.8 includes()

includes() 方法验证字符串当中是否包含有特定字符串,有则返回true, 没有返回false;

str.includes('特定字符串');