js三大对象
我们都知道,JavaScript有3大对象,分别是本地对象
、内置对象
和宿主对象
。
- 本地对象
- 与宿主无关,独立于宿主环境的ECMAScript实现提供的对象。
- 简单来说,本地对象就是 ECMA-262 定义的类(引用类型)。
- 这些引用类型在运行过程中需要通过new来创建所需的实例对象。
- 包含:
Object
、Array
、Date
、RegExp
、Function
、Boolean
、Number
、String
等。
- 内置对象
- 与宿主无关,独立于宿主环境的ECMAScript实现提供的对象。
- 在 ECMAScript 程序开始执行前就存在,本身就是实例化内置对象,开发者无需再去实例化。
- 内置对象是本地对象的子集。
- 包含:
Global
和Math
。(它们也是本地对象,根据定义,每个内置对象都是本地对象)。 - ECMAScript5中增添了
JSON
这个存在于全局的内置对象。
- 宿主对象
- 由 ECMAScript 实现的宿主环境提供的对象,包含两大类,一个是宿主提供,一个是自定义类对象。
- 所有非本地对象都属于宿主对象。
- 对于嵌入到网页中的JS来说,其宿主对象就是浏览器提供的对象,浏览器对象有很多,如
Window
和Document
等。 - 所有的
DOM
和BOM
对象都属于宿主对象。
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字符串。