String、Number、Boolean、Array、Data、Math、RegExp、Error、JSON
1 基本包装类型
在 ES 中,数据的分类分为基本数据类型和引用类型。
而基本包装类型,严格来说不属于上面两个中的任意一个,但是又和这两种类型息息相关。
ECMAScript提供了3个特殊引用类型(基本包装类型):Boolean, Number, String。
基本包装类型,和其他引用类型一样,拥有内置的方法可以对数据进行额外操作。
var str = 'test';
//substring(start,end),截取从start到end的字符串,不包括end。
var str2 = str.substring(2);
console.log(str2);
在执行第二行代码时(每当读取一个基本类型的值),JS会自动进行下面的步骤:
1.自动创建 String 类型的一个实例(和基本类型的值不同,这个实例就是一个基本包装类型的对象)
2.调用实例(对象)上指定的方法
3.销毁这个实例
引用类型和基本包装类有什么不同呢?最主要的区别就是对象的生存期。
-
引用类型:使用new操作符创建的引用类型实例,在执行流离开当前作用域之前一直都保存在内存中
-
基本包装类型:只存在一行代码的执行瞬间,然后立即销毁
怎么才能给基本类型添加方法或者属性呢?
-
增加对应的包装对象的原型方法
String.prototype.last = function(){}
-
使用new运算符创建String对象
// new运算符
var str = new String('hello');
// 有效属性
str.name = 'HI';
// 有效方法
str.age = function () {
return 100;
}
注意:在使用 new 运算符创建String,Number,Boolean三种类型的对象时,可以给自己添加属性和方法;或增加对应的包装对象的原型方法;但我们建议不要这样使用,因为这样会导致根本分不清到底是基本类型值还是引用类型值。
1.1 Boolean类型
Boolean 类型没有特定的属性或者方法。一般直接将Boolean当做一个工具方法来使用。
1.2 Number类型
-
内置属性(静态属性,直接调用即可)
属性 | 描述 |
MAX_VALUE | 可表示的最大的数。 |
MIN_VALUE | 可表示的最小的数。 |
NaN | 非数字值。 |
NEGATIVE_INFINITY | 负无穷大,溢出时返回该值。 |
POSITIVE_INFINITY | 正无穷大,溢出时返回该值。 |
prototype | 使您有能力向对象添加属性和方法。 |
-
内置方法(对象方法)
方法 | 描述 |
---|---|
toString | 把数字转换为字符串,使用指定的基数。 |
toLocaleString | 把数字转换为字符串,使用本地数字格式顺序。 |
toFixed | 把数字转换为字符串,结果的小数点后有指定位数的数字。 |
toExponential | 把对象的值转换为指数计数法。 |
toPrecision | 方法可在对象的值超出指定位数时将其转换为指数计数法。 |
valueOf | 返回一个 Number 对象的基本数字值。 |
1.3 String类型
-
对象属性
属性 | 描述 |
---|---|
constructor | 对创建该对象的函数的引用 |
length | 字符串的长度 |
prototype | 允许您向对象添加属性和方法 |
-
字符方法
方法 | 描述 |
---|---|
charAt(index) | 返回指定索引位置的字符 |
charCodeAt(index) | 以Unicode编码形式返回指定索引位置的字符 |
-
字符串操作方法
方法 | 描述 |
---|---|
concat() | 连接字符串。 |
slice() | 方法可提取字符串的某个部分,并以新的字符串返回被提取的部分。 |
substring() | 提取字符串中两个指定的索引号之间的字符。 |
substr() | 从起始索引号提取字符串中指定数目的字符。 |
-
大小写转换方法
方法 | 描述 |
---|---|
toLowerCase() | 把字符串转换为小写。 |
toUpperCase() | 把字符串转换为大写。 |
toLocaleLowerCase() | 把字符串转换为小写。本地化 |
toLocaleUpperCase() | 把字符串转换为大写。本地化 |
-
字符串的模式匹配方法
方法 | 描述 |
---|---|
match() | 找到一个或多个正则表达式的匹配。 |
replace() | 替换与正则表达式匹配的子串。 |
search() | 检索与正则表达式相匹配的值。 |
split() | 把字符串分割为字符串数组。 |
2. Math对象
Math 对象并不像 Date 和 String 那样是对象的类,因此没有构造函数 Math(),像 Math.sin() 这样的函数只是函数,不是某个对象的方法。您无需创建它,通过把 Math 作为对象使用就可以调用其所有属性和方法。
-
对象属性
属性 | 描述 |
---|---|
E | 返回算术常量 e,即自然对数的底数(约等于2.718)。 |
LN2 | 返回 2 的自然对数(约等于0.693)。 |
LN10 | 返回 10 的自然对数(约等于2.302)。 |
LOG2E | 返回以 2 为底的 e 的对数(约等于 1.414)。 |
LOG10E | 返回以 10 为底的 e 的对数(约等于0.434)。 |
PI | 返回圆周率(约等于3.14159)。 |
SQRT1_2 | 返回返回 2 的平方根的倒数(约等于 0.707)。 |
SQRT2 | 返回 2 的平方根(约等于 1.414)。 |
-
对象方法
Math - JavaScript | MDN (mozilla.org)
3. Date对象
Date 对象用于处理日期和时间。是JS提供的内置构造函数。
4. RegExp对象
用于匹配字符信息。
5. Error对象
JavaScript 将抛出异常(抛出错误)。JS实际上会创建一个Error对象,该对象带有两个属性name和message。
6. JSON对象
用于存储和交换数据的文本格式(XML)。