简单介绍:

说明: 为了便于操作基本类型值,Js提供了3个特殊的引用类型:Boolean, Number, String,实际每当读取一个基本类型变量,后台就会创建一个对应的基本包装类型的对象,从而让我们能够调用一些方法来操作这些数据


/*
 * 包装类型
 * 相当于
 * var str = new String('i love you')
 * var res = str.substring(2)
 * str = null
 */
var str = 'i love you'
var res = str.substring(2)

说明: 引用类型和包装类型的最大区别就是对象的生存期,使用new操作符创建的引用类型实例,在执行流离开当前作用域之前一直保存在内存中,而自动创建的基本包装类型的对象,则只存在于一行代码的执行瞬间然后立即被销毁,这就意味着我们不能在运行时为基本类型值添加属性和方法


转型实例:

注意: 使用new调用基本包装类型的构造函数与直接调用同名的转型函数是不一样的,如var num = Number(val),变量num中是基本类型的val,而var numObj = new Number(val)中变量numObj是Number实例,Js对于每个基本包装类型都提供了相应的操作方法


Boolean类型:

说明: Boolean类型没有特定的属性或方法


Number类型:

说明: Number类型有一些静态属性(直接通过Number调用的属性,而无视new运算符)和方法

静态属性
MAX_VALUE 表示最大数
MIN_VALUE 表示最小值
NaN 非数值
NEGATIVE_INFINITY 负无穷大,溢出返回该值
POSITIVE_INFINITY 无穷大,溢出返回该值
prototype 原型.用于增加新属性和方法
对象方法
toString() 将数值转化为字符串,并且可以转换进制
toLocaleString() 根据本地数字格式转换为字符串,数值以三位分割逗号隔开
toFixed() 将数字保留小数点后指定位数并转化为字符串,以正常浮点数表示


String类型:

对象属性
length 返回字符串的字符长度
constructor 返回创建 String 对象的函数
prototype 通过添加属性和方法扩展字符串定义
静态方法
fromCharCode(ascii) 静态方法,输出 Ascii 码对应字符
localeCompare(str1,str2) 比较两个字符串,并返回相应的值 1/0/-1
字符方法
charAt(n) 返回指定索引位置的字符
charCodeAt(n) 以 Unicode 编码形式返回指定索引位置的字符
对象方法
concat(str1...str2) 将字符串参数串联到调用该方法的字符串
slice(n,m) 返回字符串 n 到 m 之间位置的字符串
substring(n,m) 返回字符串 n 到 m 之间位置的字符串
substr(n, m) 返回字符串 n 开始的 m 个字符串
indexOf(str, n) 从 n 开始搜索的第一个 str,并将搜索的索引值返回,如果没有找到返回-1
lastIndexOf(str, n) 从 n 开始搜索的最后一个 str,并将搜索的索引值返回, 如果没有找到返回-1
toLowerCase(str) 将字符串全部转换为小写
toUpperCase(str) 将字符串全部转换为大写
toLocaleLowerCase(str) 将字符串全部转换为小写,并且本地化
toLocaleupperCase(str) 将字符串全部转换为大写,并且本地化
match(pattern) 返回 pattern中的子串或 null
replace(pattern, replacement) 用 replacement 替换 pattern
search(pattern) 返回字符串中 pattern 开始位置
split(pattern) 返回字符串按指定 pattern 拆分的数组,如果pattern为''可以把字符串转换为字符数组
HTML方法
http://www.w3school.com.cn/js/js_obj_string.asp
var flag = 'xx'
var posArr = []
var strs = 'xxooxxooxxooxxooxxooxxo'
// 首先获取字符串第一次出现位置
var firstPos = strs.indexOf(flag, 0)
// 如果查找不到就break
while(firstPos != -1){
    // 先打印子字符串然后再获取位置
    console.log(strs.substr(firstPos, flag.length))
    firstPos = strs.indexOf(flag, firstPos+flag.length)
}