String对象

1.概述
String对象是JavaScript原生提供的三个包装对象之一,用来生成字符串的包装对象实例。
var s = new String("abc");
typeof s // "object"
s.valueOf() // "abc"

上面代码生成的变量s,就是String对象的实例,类型为对象,值为原来的字符串。实际上,String对象的实例是一个类似数组的对象。

new String("abc")
// String {0: "a", 1: "b", 2: "c"}

除了用作构造函数,String还可以当作工具方法使用,将任意类型的值转为字符串。

String(true) // "true"
String(5) // "5"

上面代码将布尔值ture和数值5,分别转换为字符串。
2.String.fromCharCode()
String对象直接提供的方法,主要是fromCharCode()。该方法根据Unicode编码,生成一个字符串。

String.fromCharCode(104, 101, 108, 108, 111)
// "hello"

注意,该方法不支持编号大于0xFFFF的字符。

String.fromCharCode(0x20BB7)
// "ஷ"

上面代码返回字符的编号是0x0BB7,而不是0x20BB7。这种情况下,只能使用四字节的UTF-16编号,得到正确结果。

String.fromCharCode(0xD842, 0xDFB7)
// "��"

3.实例对象的属性和方法
length属性

"abc".length
// 3

charAt 和 charCodeAt 方法
charAt方法返回一个字符串的给定位置的字符,位置从0开始编号。

var s = new String("abc");

s.charAt(1) // "b"
s.charAt(s.length-1) // "c"

这个方法完全可以用数组下标替代。

"abc"[1] // "b"

charCodeAt方法返回给定位置字符的Unicode编码(十进制表示)。

var s = new String("abc");

s.charCodeAt(1)
// 98

需要注意的是,charCodeAt方法返回的Unicode编码不大于65536(0xFFFF),也就是说,只返回两个字节。因此如果遇到Unicode大于65536的字符(根据UTF-16的编码规则,第一个字节在U+D800到U+DBFF之间),就必需连续使用两次charCodeAt,不仅读入charCodeAt(i),还要读入charCodeAt(i+1),将两个16字节放在一起,才能得到准确的字符。

如果给定位置为负数,或大于等于字符串的长度,则这两个方法返回NaN。
concat方法
concat方法用于连接两个字符串。

var s1 = "abc";
var s2 = "def";

s1.concat(s2) // "abcdef"
s1 // "abc"

使用该方法后,原字符串不受影响,返回一个新字符串。

该方法可以接受多个字符串。

"a".concat("b","c")
// "abc"

但是,一般来说,字符串连接运算还是应该使用加号(+)运算符。
substring方法,substr方法和slice方法
这三个方法都用来返回一个字符串的子串,而不会改变原字符串。它们都可以接受一个或两个参数,区别只是参数含义的不同。
(1)substring方法
substring方法的第一个参数表示子字符串的开始位置,第二个位置表示结束结果。因此,第二个参数应该大于第一个参数。如果出现第一个参数大于第二个参数的情况,substring方法会自动更换两个参数的位置。

var a = 'The Three Musketeers';
a.substring(4, 9) // 'Three'
a.substring(9, 4) // 'Three'

上面代码中,调换substring方法的两个参数,都得到同样的结果。
(2)substr方法

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值