JavaScript 字符串是原始值,通过字面方式创建:var firstName = "Bill"
字符串也可通过关键词 new 定义为对象:var firstName = new String("Bill")
var x = "Bill"; // typeof x 将返回 string
var y = new String("Bill");// typeof y 将返回 object
请不要把字符串创建为对象。它会拖慢执行速度。new 关键字使代码复杂化。也可能产生一些意想不到的结果:
1)当使用 == 相等运算符时,相等字符串是相等的
var x = "Bill"; var y = new String("Bill"); // (x == y) 为 true,因为 x 和 y 的值相等
=== 运算符需要类型和值同时相等。
var x = "Bill";
var y = new String("Bill");
// (x === y) 为 false,因为 x 和 y 的类型不同(字符串与对象)
2)
indexOf() 与 search()区别:
- search() 方法无法设置第二个开始位置参数。
- indexOf() 方法无法设置更强大的搜索值(正则表达式)。
3)
提取部分字符串
- slice(start, end)
提取字符串的某个部分并在新字符串中返回被提取的部分。
var str = "Apple, Banana, Mango";
var res = str.slice(7,13);
结果:Banana
如果某个参数为负,则从字符串的结尾开始计数。
var str = "Apple, Banana, Mango";
var res = str.slice(-13,-7);
结果:Banana
如果省略第二个参数,则该方法将裁剪字符串的剩余部分:
- substring(start, end)
类似于 slice()不同之处在于 substring() 无法接受负的索引
- substr(start, length)
substr() 类似于 slice()。不同之处在于第二个参数规定被提取部分的长度。
如果首个参数为负,则从字符串的结尾计算位置。
4)replace替换
replace() 方法不会改变调用它的字符串。它返回的是新字符串。默认地,replace() 只替换首个匹配。
如需执行大小写不敏感的替换,请使用正则表达式 /i(大小写不敏感):
str = "Please visit Microsoft!"; var n = str.replace(/MICROSOFT/i, "W3School");
如需替换所有匹配,请使用正则表达式的 g 标志(用于全局搜索):
str = "Please visit Microsoft and Microsoft!"; var n = str.replace(/Microsoft/g, "W3School"); 请注意正则表达式不带引号。
5)
charCodeAt() 方法返回字符串中指定索引的字符 unicode 编码: