基本包装类型
每当读取基本类型,后台会创建一个对应的基本包装类型的对象,从而让我们能够调用一些方法来操作这些数据。例子:
var s1 = "some text"; var s2 = s1.substring(2); //以上过程在后台是类似以下面的方法实现 var s1 = new String("some text"); //创建String类型的一个实例 var s2 = s1.substring(2); //在实例上调用指定方法 s1 = null; //销毁这个实例
Object()函数会根据传入值的类型来返回基本包装类型的实例。如:
var obj1 = new Object("some text"); //String类 var obj2 = new Object(true); //Boolean类 var obj3 = new Object(9); //Number类
使用new调用基本包装类型的构造函数,与直接调用同名的转型函数是不一样的。
var value = 25; var number = Number(value); //转型函数 alert(typeof number); //"number" var obj = new Number(value); //构造函数 alert(typeof obj); //"object"
对基本包装类型调用typeof会返回“object”,而且所有基本包装类型的对象都会被转换为布尔值true。
1 Boolean类型
Boolean类型容易造成误解,如:
var falseObject = new Boolean(false); var result = falseObject && true; //falseObject为Boolean对象,在布尔表达式中为true alert(result); //true
2 Number类型
方法:
- toFixed(n):按照指定的小数位返回数值的字符串表示(可以表示0-20个小数位的数值)
- toExponential(n):返回以指数法表示的数值的字符串形式
- toPrecision(n):按最合适的方法返回数值的字符串(可以表现1-21位小数)
3 String类型
3.1 length属性:返回字符串的长度
3.2 字符方法
- charAt(n) :以单字符字符串的形式返回给定位置的那个字符。
- charCodeAt(n):返回给地位置的字符的字符编码。
- [ n ]:可以用方括号加索引的方式返回字符。
var stringValue = "hello World"; alert(stringValue.charAt(1)); //"e" alert(stringValue.charCodeAt(1)); //"101" alert(stringValue[1]); //"e"
3.3 字符串操作方法
- concat():将一个或多个字符串连接起来。
- slice(),substring():接受一或两个参数,返回一个子字符串。第一个参数指定起始位置,第二个参数指定子字符串最后一个字符后面的位置。
- substr():接受一或两个参数,返回一个子字符串。第一个参数指定起始位置,第二个参数指定返回字符串的个数。
向以上方法传入负数的情况:
- slice():会将传入的负值与字符串的长度相加;
- substr():将负的第一个参数加上长度,第二个参数转换为0;
- substring():会把所有负值转换为0
3.4 trim()方法:创建一个字符串副本,删除前置及后缀的所有空格
var stringValue = " Hello World "; var trimmedStringValue = stringValue.trim(); alert(trimmedStringValue); //"Hello World" alert(stringValue); //" Hello World "
3.5 字符串大小写转换方法
转小写:
- toLowerCase()
- toLocaleLowerCase()
转大写:
- toUpperCase()
- toLocaleUpperCase()
3.6 字符串的模式匹配方法
- match():只接受一个参数,要么是正则表达式,要么是RegExp对象。返回一个数组,数组的第一项是与整个模式匹配的字符串,之后每一项保存着与正则表达式捕获组匹配的字符串
- search():接受一个参数,要么是正则表达式,要么是RegExp对象,并返回第一个匹配项的索引,没有找到匹配项返回-1。
- replace():接受两个参数,第一个参数可以是RegExp对象或字符串,第二个参数是字符串或者函数。
//第一个参数是字符串只会替换第一个匹配的字符串 var text = "cat, bat, sat, qat"; var result = text.replace("at", "ond"); alert(result); //"cond, bat, sat, qat" //第一个参数是正则表达式,且指定全局(g)标志,会替换所有匹配的子字符串 result = text.replace(/at/g, "ond"); alert(result); //"cond, bond, sond, qond"
3.7 localeCompare()方法
比较两个字符串,并返回下列值中的一个:
- 字符串在字母表中排在字符参数前,返回正数
- 等于字符串参数,返回0
- 排在字符串参数之后,返回负数
function determineOrder(value) { var result = stringValue.localeCompare(value); if (result < 0) doSomething(); else if (result > 0) doSomething(); else doSomething; }
3.8 fromCharCode()
接收一个或多个字符编码,然后转换成字符串。
alert(String.fromCharCode(104, 101, 108, 108, 111)); //"hello"

浙公网安备 33010602011771号