引用类型(二)
5.6 基本包装类型
-
三种特殊引用类型(Boolean,Number,String)
-
引用类型与基本包装类型的主要区别就是对象的生存期。
-
引用类型的示例,在执行流离开当前作用域之前都一致保存在内存中;而(自动创建的)基本包装类型的对象,只存在于一行代码的执行瞬间,然后立即被销毁
var s1 = 'one example'; var s2 = s1.substring(2); //第二行代码实际上执行了三步---->①创建一个String类型的一个实例;②在实例上调用指定的方法;③销毁这个实例
-
-
使用new调用基本包装类型的构造函数,与直接调用同名的转型函数是不一样的
var value = '25'; var number = Number(value); alert(number typeof number) //'number' var number2 = new Number(value); alert(number2 typeof number2) //'object'
-
基本类型与引用类型的布尔值的两个区别
- typeof 操作符对基本类型返回‘Boolean’,而对引用类型返回‘object’
- 由于Boolean对象是Boolean类型的实例,所以使用instanceof操作符测试Boolean对象会返回true,而测试基本类型的布尔值则返回false
-
String类型
- 字符方法
- charAt()和charCodeAt()
- charAt(),以字符串形式返回给定位置的那个字符
- charAt(),以字符串形式返回给定位置的那个字符编码
- charAt()和charCodeAt()
- 字符串操作方法(参考引用类型(一)的数组的操作方法)
- 字符串位置方法(参考引用类型(一)的数组的操作方法)
- trim(),创建字符串的副本,并删除前置及后缀的所有空格,并返回结果
- 字符串大小写转换
- toLowerCase(),经典转小写方法
- toLocaleLowerCase(),针对特定地图实现
- toUpperCase(),经典转大写方法
- toLocaleUpperCase(),针对特定地图实现
- 字符串模式匹配方法
- match()方法
- 字符串上调用这个方法本质上与调用RegExp()的exec()方法相同。
- 只接受一个参数,要么是正则表达式,要么是RegExp对象
- search()方法,参数传递类型与mach方法相同。search()方法返回字符串中第一个匹配项的索引;如果没有找到匹配项,则返回-1。并且它始终从字符串开头向后查找模式
- replace()方法,接收两个参数,一个是RegExp对象或字符串,另一个可以是一个字符串或者一个参数。
- 如果第一个参数是字符串,那么只会替换第一个子字符串,如果想替换所有的子字符串,就是提供一个正则表达式,并且指定全局(/g)
- 如果第二个参数是字符串,那么可以使用一些特定的字符序列,将正则表达式操作得到的值插入到结果字符串中
- 第二个参数也可以是函数,在只有一个与模式匹配的字符串的情况下,会向这个函数传递3个参数(即’模式的匹配项’,’模式匹配项在符串中的位置‘,’原始字符串‘)
- split()方法,可以通过指定的分割符将一个字符串分割成多个子字符串,并将结果放到数组中
- localeCompare()方法,比较两个字符串
- 如果字符串在字母表中应该排在字符串参数之前,则返回一个负数(大多数情况下是-1,具体的值要视实现而定)
- 如果字符串等于字符串参数,则返回0;
- 如果字符串在字母表中应该排在字符串参数之后,则返回一个正数(大多数情况下是1,具体的值同样要视实现而定)
- match()方法
- 字符方法