js中的内置对象、本地对象、宿主对象以及相关用法


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对象

优质内容筛选与推荐>>
1、TFS 2012使用简介(一)
2、centos7.2 my.cnf 更改问题
3、Introduce myself in English
4、IE对input元素onchange事件的支持BUG
5、模拟测试68


长按二维码向我转账

受苹果公司新规定影响,微信 iOS 版的赞赏功能被关闭,可通过二维码转账支持公众号。

    阅读
    好看
    已推荐到看一看
    你的朋友可以在“发现”-“看一看”看到你认为好看的文章。
    已取消,“好看”想法已同步删除
    已推荐到看一看 和朋友分享想法
    最多200字,当前共 发送

    已发送

    朋友将在看一看看到

    确定
    分享你的想法...
    取消

    分享想法到看一看

    确定
    最多200字,当前共

    发送中

    网络异常,请稍后重试

    微信扫一扫
    关注该公众号