js数据类型以及各类型对应的方法使用

254 阅读23分钟

数据类型:

Number属性

Number方法

String属性

String方法

String实例属性

  • String.prototype.constructor

    用于创造对象的原型对象的特定的函数。

  • String.prototype.length

    返回了字符串的长度。

  • N

    用于访问第N个位置的字符,其中N是小于 length 和 0之间的正整数。这些属性都是“只读”性质,不能编辑。

String实例跟HTML无关的方法

Boolean构造器

  • Boolean()

    创建一个新的Boolean 对象。

Boolean实例方法

symbol属性

  • Symbol.length

    长度属性,值为0。

  • Symbol.prototype

    symbol构造函数的原型。

众所周知的 symbols

除了自己创建的symbol,JavaScript还内建了一些在ECMAScript 5 之前没有暴露给开发者的symbol,它们代表了内部语言行为。它们可以使用以下属性访问:

symbol方法

  • Symbol.for(key)

    使用给定的key搜索现有的symbol,如果找到则返回该symbol。否则将使用给定的key在全局symbol注册表中创建一个新的symbol。

  • Symbol.keyFor(sym)

    从全局symbol注册表中,为给定的symbol检索一个共享的?symbol key。

Symbol 原型

所有 Symbols 继承自 Symbol.prototype.

symbol原型属性

symbol原型方法

Object

object描述

Object 构造函数为给定值创建一个对象包装器。如果给定值是 nullundefined,将会创建并返回一个空对象,否则,将返回一个与给定值对应类型的对象。

当以非构造函数形式被调用时,Object 等同于 new Object()

Object 构造函数的属性

  • Object.length

    值为 1。

  • Object.prototype

    可以为所有 Object 类型的对象添加属性。

Object 构造函数的方法

Object 实例和 Object 原型对象

JavaScript中的所有对象都来自 Object;所有对象从Object.prototype继承方法和属性,尽管它们可能被覆盖。例如,其他构造函数的原型将覆盖 constructor 属性并提供自己的 toString() 方法。Object 原型对象的更改将传播到所有对象,除非受到这些更改的属性和方法将沿原型链进一步覆盖。

object原型对象属性

object原型对象方法

function

function描述

使用 Function 构造器生成的 Function 对象是在函数创建时解析的。这比你使用函数声明或者函数表达式并在你的代码中调用更为低效,因为使用后者创建的函数是跟其他代码一起解析的。

所有被传递到构造函数中的参数,都将被视为将被创建的函数的参数,并且是相同的标示符名称和传递顺序。

以调用函数的方式调用 Function 的构造函数(而不是使用 new 关键字) 跟以构造函数来调用是一样的。

function属性和方法

全局的 Function 对象没有自己的属性和方法,但是,因为它本身也是一个函数,所以它也会通过原型链从自己的原型链 Function.prototype 上继承一些属性和方法。

function原型对象属性

function原型对象方法

function实例

Function 实例从 Function.prototype 继承了一些属性和方法。 同其他构造函数一样, 你可以改变构造函数的原型从而使得所有的 Function 实例的属性和方法发生改变。

array

array描述

数组是一种类列表对象,它的原型中提供了遍历和修改元素的相关操作。JavaScript 数组的长度和元素类型都是非固定的。因为数组的长度可随时改变,并且其数据在内存中也可以不连续,所以 JavaScript 数组不一定是密集型的,这取决于它的使用方式。一般来说,数组的这些特性会给使用带来方便,但如果这些特性不适用于你的特定使用场景的话,可以考虑使用类型数组 TypedArray

只能用整数作为数组元素的索引,而不能用字符串。后者称为关联数组。使用非整数并通过方括号点号来访问或设置数组元素时,所操作的并不是数组列表中的元素,而是数组对象的属性集合上的变量。数组对象的属性和数组元素列表是分开存储的,并且数组的遍历和修改操作也不能作用于这些命名属性。

Array属性

  • Array.length

    Array构造函数的 length 属性,其值为1(注意该属性为静态属性,不是数组实例的 length 属性)。

  • get Array[@@species]

    返回 Array 构造函数。

  • Array.prototype

    通过数组的原型对象可以为所有数组对象添加属性。

Array方法

  • Array.from()

    从类数组对象或者可迭代对象中创建一个新的数组实例。

  • Array.isArray()

    用来判断某个变量是否是一个数组对象。

  • Array.of()

    根据一组参数来创建新的数组实例,支持任意的参数数量和类型。

数组实例

所有数组实例都会从 Array.prototype 继承属性和方法。修改 Array 的原型会影响到所有的数组实例。

数组实例属性

  • Array.prototype.constructor

    所有的数组实例都继承了这个属性,它的值就是 Array,表明了所有的数组都是由 Array 构造出来的。

  • Array.prototype.length

    上面说了,因为 Array.prototype 也是个数组,所以它也有 length 属性,这个值为 0,因为它是个空数组。

数组实例方法

修改器方法

下面的这些方法会改变调用它们的对象自身的值:

访问方法

下面的这些方法绝对不会改变调用它们的对象的值,只会返回一个新的数组或者返回一个其它的期望值。

迭代方法

在下面的众多遍历方法中,有很多方法都需要指定一个回调函数作为参数。在每一个数组元素都分别执行完回调函数之前,数组的length属性会被缓存在某个地方,所以,如果你在回调函数中为当前数组添加了新的元素,那么那些新添加的元素是不会被遍历到的。此外,如果在回调函数中对当前数组进行了其它修改,比如改变某个元素的值或者删掉某个元素,那么随后的遍历操作可能会受到未预期的影响。总之,不要尝试在遍历过程中对原数组进行任何修改,虽然规范对这样的操作进行了详细的定义,但为了可读性和可维护性,请不要这样做。

  • Array.prototype.forEach()

    为数组中的每个元素执行一次回调函数。

  • Array.prototype.entries()

    返回一个数组迭代器对象,该迭代器会包含所有数组元素的键值对。

  • Array.prototype.every()

    如果数组中的每个元素都满足测试函数,则返回 true,否则返回 false。

  • Array.prototype.some()

    如果数组中至少有一个元素满足测试函数,则返回 true,否则返回 false。

  • Array.prototype.filter()

    将所有在过滤函数中返回 true 的数组元素放进一个新数组中并返回。

  • Array.prototype.find()

    找到第一个满足测试函数的元素并返回那个元素的值,如果找不到,则返回 undefined

  • Array.prototype.findIndex()

    找到第一个满足测试函数的元素并返回那个元素的索引,如果找不到,则返回 -1

  • Array.prototype.keys()

    返回一个数组迭代器对象,该迭代器会包含所有数组元素的键。

  • Array.prototype.map()

    返回一个由回调函数的返回值组成的新数组。

  • Array.prototype.reduce()

    从左到右为每个数组元素执行一次回调函数,并把上次回调函数的返回值放在一个暂存器中传给下次回调函数,并返回最后一次回调函数的返回值。

  • Array.prototype.reduceRight()

    从右到左为每个数组元素执行一次回调函数,并把上次回调函数的返回值放在一个暂存器中传给下次回调函数,并返回最后一次回调函数的返回值。

  • Array.prototype.values()

    返回一个数组迭代器对象,该迭代器会包含所有数组元素的值。

  • Array.prototype[@@iterator]()

    和上面的 values() 方法是同一个函数。

date简介

  • 如果没有输入任何参数,则Date的构造器会依据系统设置的当前时间来创建一个Date对象。
  • 如果提供了至少两个参数,其余的参数均会默认设置为 1(如果没有指定 day 参数)或者 0(如果没有指定 day 以外的参数)。
  • JavaScript的时间由世界标准时间(UTC)1970年1月1日开始,用毫秒计时,一天由 86,400,000 毫秒组成。Date 对象的范围是 -100,000,000 天至 100,000,000 天(等效的毫秒值)。
  • Date 对象为跨平台提供了统一的行为。时间属性可以在不同的系统中表示相同的时刻,而如果使用了本地时间对象,则反映当地的时间。
  • Date 对象支持多个处理 UTC 时间的方法,也相应地提供了应对当地时间的方法。UTC,也就是我们所说的格林威治时间,指的是time中的世界时间标准。而当地时间则是指执行JavaScript的客户端电脑所设置的时间。
  • 以一个函数的形式来调用 Date 对象(即不使用 new 操作符)会返回一个代表当前日期和时间的字符串。

date属性

  • Date.prototype

    允许为 Date 对象添加属性。

  • Date.length

    Date.length 的值是 7。这是该构造函数可接受的参数个数。

date方法

  • Date.now()

    返回自 1970-1-1 00:00:00 UTC(世界标准时间)至今所经过的毫秒数。

  • Date.parse()

    解析一个表示日期的字符串,并返回从 1970-1-1 00:00:00 所经过的毫秒数。注意: 由于浏览器差异和不一致,强烈建议不要使用Date.parse解析字符串。

  • Date.UTC()

    接受和构造函数最长形式的参数相同的参数(从2到7),并返回从 1970-01-01 00:00:00 UTC 开始所经过的毫秒数。

JavaScript Date 实例

所有的 Date 实例都继承自 Date.prototype。修改 Date构造函数的原型对象会影响到所有的 Date 实例。

Date实例属性

  • Date.prototype.constructor

    返回创建了实例的构造函数,默认是 Date 构造函数。

date实例方法Getter

date实例方法Setter

date实例方法 Conversion getter

正则

regexp构造函数

  • RegExp()

    创建一个新的 RegExp 对象。

regexp静态属性

regexp实例属性

regexp实例方法

null描述

null 是一个字面量,不像 undefined,它不是全局对象的一个属性。null 是表示缺少的标识,指示变量未指向任何对象。把 null 作为尚未创建的对象,也许更好理解。在 API 中,null 常在返回类型应是一个对象,但没有关联的值的地方使用。

nullundefined 的不同点:

当检测 nullundefined 时,注意相等(==)与全等(===)两个操作符的区别 ,前者会执行类型转换

undefined