js三大对象

我们都知道,JavaScript有3大对象,分别是本地对象内置对象宿主对象

  • 本地对象
    • 与宿主无关,独立于宿主环境的ECMAScript实现提供的对象。
    • 简单来说,本地对象就是 ECMA-262 定义的类(引用类型)。
    • 这些引用类型在运行过程中需要通过new来创建所需的实例对象。
    • 包含:ObjectArrayDateRegExpFunctionBooleanNumberString等。
  • 内置对象
    • 与宿主无关,独立于宿主环境的ECMAScript实现提供的对象。
    • 在 ECMAScript 程序开始执行前就存在,本身就是实例化内置对象,开发者无需再去实例化。
    • 内置对象是本地对象的子集。
    • 包含:GlobalMath。(它们也是本地对象,根据定义,每个内置对象都是本地对象)。
    • ECMAScript5中增添了JSON这个存在于全局的内置对象。
  • 宿主对象
    • 由 ECMAScript 实现的宿主环境提供的对象,包含两大类,一个是宿主提供,一个是自定义类对象。
    • 所有非本地对象都属于宿主对象。
    • 对于嵌入到网页中的JS来说,其宿主对象就是浏览器提供的对象,浏览器对象有很多,如WindowDocument等。
    • 所有的DOMBOM对象都属于宿主对象。

一、本地对象

1.Object

  • Object.prototype.hasOwnProperty(): 返回一个布尔值,表示某个对象是否含有指定的属性,而且此属性非原型链继承。
  • Object.prototype.isPrototypeOf():  返回一个布尔值,表示指定的对象是否在本对象的原型链中。
  • Object.prototype.propertyIsEnumerable(): 判断指定属性是否可枚举。
  • Object.prototype.toString(): 返回对象的字符串表示。
  • Object.prototype.watch(): 给对象的某个属性增加监听。
  • Object.prototype.unwatch(): 移除对象某个属性的监听。
  • Object.prototype.valueOf(): 返回指定对象的原始值。

    2.Array

  • concat()     表示把几个数组合并成一个数组

  • join()      设置分隔符连接数组元素为一个字符串
  • pop()      移除数组最后一个元素
  • shift()      移除数组中第一个元素
  • slice(start,end) 返回数组中的一段
  • splice()     可以用来删除,可以用来插入,也可以用来替换
  • push()     往数组中新添加一个元素,返回最新长度
  • sort()      对数组进行排序
  • reverse()    反转数组的顺序
  • toLocaleString()   把数组转换为本地字符串
  • array对象属性:
  • length       表示取得当前数组长度 (常用)
  • constructor     引用数组对象的构造函数
  • prototype     通过增加属性和方法扩展数组定义

    3.Date

  • getDate函数:      返回日期的“日”部分,值为1~31。
  • getDay函数:       返回星期,值为0~6,0表示星期日。
  • getHours函数:      返回日期的“小时”部分,值为0~23。
  • getMinutes函数:     返回日期的“分钟”部分,值为0~59。
  • getMonth函数:      返回日期的“月”部分,值为0~11。
  • getSeconds函数:     返回日期的“秒”部分,值为0~59。
  • getTime函数:      返回系统时间。
  • getTimezoneOffset函数: 返回此地区的时差(当地时间与GMT格林威治标准时间的地区时差),单位为分钟。
  • getYear函数:      返回日期的“年”部分。返回值以1900年为基数,如1999年为99。
  • parse函数:       返回从1970年1月1日零时整算起的毫秒数(当地时间)
  • setDate函数:      设定日期的“日”部分,值为0~31。
  • setHours函数:      设定日期的“小时”部分,值为0~23。
  • setMinutes函数:     设定日期的“分钟”部分,值为0~59。
  • setMonth函数:      设定日期的“月”部分,值为0~11。其中0表示1月,…,11表示12月。
  • setSeconds函数:     设定日期的“秒”部分,值为0~59。
  • setTime函数:      设定时间。时间数值为1970年1月1日零时整算起的毫秒数。
  • setYear函数:      设定日期的“年”部分。
  • toGMTString函数:    转换日期成为字符串,为GMT格林威治标准时间。
  • setLocaleString函数:   转换日期成为字符串,为当地时间。
  • UTC函数:        返回从1970年1月1日零时整算起的毫秒数(GMT)。

4.RegExp

  • reg.test(str)        该方法检查一个字符串中是否存在创建RegExp对象实例时所指定的表达式模式,如果存在就返回True,否则返回False。如果找到匹配项,则会更新RegExp对象中的有关静态属性,以反映匹配情况。
  • reg.exec(str)       该方法使用创建RegExp对象实例时所指定的表达式模式对一个字符串进行搜索,并返回一个包含搜索结果的数组。
  • reg.compile(“pattern”[,”flags”])  该方法可以更换RegExp对象实例所使用的表达式模式,并将新的表达式模式编译为内部格式,从而使以后的匹配过程执行更快。

    5.Function

        顶层函数(全局函数)

    | 函数 | 描述 | | —- | —- | | decodeURI() | 解码某个编码的 URI。 | | decodeURIComponent() | 解码一个编码的 URI 组件。 | | encodeURI() | 把字符串编码为 URI。 | | encodeURIComponent() | 把字符串编码为 URI 组件。 | | escape() | 对字符串进行编码。 | | eval() | 计算 JavaScript 字符串,并把它作为脚本代码来执行。 | | getClass() | 返回一个 JavaObject 的 JavaClass。 | | isFinite() | 检查某个值是否为有穷大的数。 | | isNaN() | 检查某个值是否是数字。 | | Number() | 把对象的值转换为数字。 | | parseFloat() | 解析一个字符串并返回一个浮点数。 | | parseInt() | 解析一个字符串并返回一个整数。 | | String() | 把对象的值转换为字符串。 | | unescape() | 对由 escape() 编码的字符串进行解码。 |

    顶层属性(全局属性)

方法 描述
Infinity 代表正的无穷大的数值。
java 代表 java.* 包层级的一个 JavaPackage。
NaN 指示某个值是不是数字值。
Packages 根 JavaPackage 对象。
undefined 指示未定义的值。

6.Boolean

  Boolean 对象表示两个值:”true” 或 “false”。

  • toSource() 返回该对象的源代码。
  • toString() 把逻辑值转换为字符串,并返回结果。
  • valueOf() 返回 Boolean 对象的原始值。

    7.Number

      Number 对象是原始数值的包装对象。
toString 把数字转换为字符串,使用指定的基数。
toLocaleString 把数字转换为字符串,使用本地数字格式顺序。
toFixed 把数字转换为字符串,结果的小数点后有指定位数的数字。
toExponential 把对象的值转换为指数计数法。
toPrecision 把数字格式化为指定的长度。
valueOf 返回一个 Number 对象的基本数字值。

8.String

  • charAt()          返回指定索引的位置的字符
  • indexOf()          从前向后检索字符串,看是否含有指定字符串
  • lastIndexOf()        从后向前检索字符串,看是否含有指定字符串
  • concat()          连接两个或多个字符串
  • match()         使用正则表达式模式对字符串执行查找,并将包含查找结果最为结果返回
  • replace()         替换一个与正则表达式匹配的子串
  • search()          检索字符串中与正则表达式匹配的子串。如果没有找到匹配,则返回 -1。
  • slice(start,end)     根据下表截取子串
  • substring(start,end)   根据下表截取子串
  • split()           根据指定分隔符将字符串分割成多个子串,并返回素组
  • substr(start,length)    根据长度截取字符串
  • toUpperCase()       返回一个字符串,该字符串中的所有字母都被转化为大写字母。
  • toLowerCase()       返回一个字符串,该字符串中的所有字母都被转化为小写字母。

    二、内置对象

    1.Global

  • 全局属性和函数,可用于所有内建的JavaScript对象

  • escape()     对字符串编码
  • eval()       把字符串解析为JavaScript代码并执行
  • isNaN()      判断一个值是否是NaN
  • parseInt()    解析一个字符串并返回一个整数
  • parseFloat()   解析一个字符串并返回一个浮点数
  • number()     把对象的值转换为数字
  • string()     把对象的值转换为字符串

    2.Math

    | 方法 | 描述 | | —- | —- | | abs(x) | 返回数的绝对值。 | | acos(x) | 返回数的反余弦值。 | | asin(x) | 返回数的反正弦值。 | | atan(x) | 以介于 -PI/2 与 PI/2 弧度之间的数值来返回 x 的反正切值。 | | atan2(y,x) | 返回从 x 轴到点 (x,y) 的角度(介于 -PI/2 与 PI/2 弧度之间)。 | | ceil(x) | 对数进行上舍入。 | | cos(x) | 返回数的余弦。 | | exp(x) | 返回 e 的指数。 | | floor(x) | 对数进行下舍入。 | | log(x) | 返回数的自然对数(底为e)。 | | max(x,y) | 返回 x 和 y 中的最高值。 | | min(x,y) | 返回 x 和 y 中的最低值。 | | pow(x,y) | 返回 x 的 y 次幂。 | | random() | 返回 0 ~ 1 之间的随机数。 | | round(x) | 把数四舍五入为最接近的整数。 | | sin(x) | 返回数的正弦。 | | sqrt(x) | 返回数的平方根。 | | tan(x) | 返回角的正切。 | | toSource() | 返回该对象的源代码。 | | valueOf() | 返回 Math 对象的原始值。 |

3.JSON

  • JSON.parse用来将JSON字符串反序列化成对象,
  • JSON.stringify用来将对象序列化成JSON字符串。

三、宿主对象

1.DOM对象

2.BOM对象