我们知道字符串(String)类型是 JavaScript 中的基本数据类型之一,也是最常用的数据类型啦。下面我们来学习一下关于字符串的属性方法以及其的使用等。
什么是字符串
JavaScript 字符串其实很好理解,就是被包围在单引号或双引号中的任意字符。字符串可以用于存储和处理文本。
示例:
例如像下面这样声明的变量都是字符串类型:
var str1 = "123";
var str2 = '12356';
var str3 = "你好,侠课岛";
var str4 = 'hello summer';
var str5 = 'good_boy';
一般情况下字符串就是一个或多个字符组成,除此之外,我们还可以使用 new
关键字将字符串定义为一个对象:
var name = new String("summer");
console.log(name); // 输出:summer
不过一般情况下我们最好不要创建 String 对象,因为这可能会导致执行速度变慢。
通过索引访问字符串
在 JavaScript 语言中我们可以通过索引来访问字符串中的每个字符,字符串的索引也是从 0 开始,第一个字符索引值为 [0],第二个字符索引值为[1],以此类推。
示例:
例如下述代码中,我们定义了一个字符串类型的变量 username,然后输出变量中索引值为1的字符:
var username = "summer";
console.log(username[1]); // 输出: u
因为索引是从 0 开始计数,那么索引为1,那应该就是字符串中的第二个字符串,也就是 u
。
获取字符串的长度
我们先来看下面这个字符串:
var hobby = "basketball";
你能知道这个字符串的长度为多少吗,其实你数一下就能知道,这个字符串的长度就是10。因为这个字符串有10个字符,所以它的长度为10。
这里要注意的是,字符串里面包含的空格也是会计入长度的,有1个空格长度加1,2个空格长度加2。
在 JavaScript 语言中,我们可以使用 length
属性来获取字符串长度,length
属性用于返回字符串的长度(字符数)。
示例:
例如获取下面这个变量 hobby 的长度并输出:
var hobby = "basketball";
console.log(hobby.length); // 输出:10
实际使用时,可能会遇到带有空格的字符串,那么空格会计入字符的长度吗,我们来看看:
var str1 = "hello xkd";
console.log(str1.length); // 输出:9
通过输出结果我们可以知道,空格也会计入字符串的长度的。
从字符串的长度和索引的关系,我们可以得出一个结论,索引是从0开始,到length-1
结束的。
转义字符
有些时候,字符串可能无法被解析,例如下面这个字符串:
var str1 = "嘿,你好呀~,"侠课岛"";
console.log(str1); // Uncaught SyntaxError: Unexpected identifier
那这个时候要怎么办呢,我们可以使用反斜杆 \
来转义字符串中的双引号。
示例:
var str1 = "嘿,你好呀~,\"侠课岛\"";
console.log(str1); //输出:嘿,你好呀~,"侠课岛"
转义字符\
可以用于转义撇号,换行,引号,等其他特殊字符。下面是一些可以用于转义字符转义的特殊字符:
-
\'
:单引号。 -
\"
:双引号。 -
\\
:反斜杠。 -
\n
:换行符。 -
\r
:回车符。 -
\t
:制表符(tab)。 -
\b
:退格符。 -
\f
:换页符。
字符串的方法
字符串的方法有很多,下面我们简单来看一些比较常用到的几个方法:
-
toLowerCase()
:此方法用于把字符串转为小写,并返回新的字符串。
var str1 = "Hello XKD";
console.log(str1.toLocaleLowerCase());
//输出: hello xkd
-
toUpperCase()
:此方法用于把字符串转为大写,并返回新的字符串。
var str1 = "Hello XKD";
console.log(str1.toUpperCase());
//输出: HELLO XKD
-
toString()
:用于返回一个表示 String 对象的值。
var str1 = "Hello";
console.log(str1.toString());
//输出: Hello
-
concat()
: 用于连接两个或多个字符串。
var str1 = "Hello";
var str2 = "xkd";
console.log(str1.concat(str2));
//输出: Helloxkd
-
indexOf()
:返回某个指定的子字符串在字符串中第一次出现的位置。
var str1 = "Hello xkd, Congratulations on login!";
console.log(str1.indexOf('xkd'));
//输出: 6
-
lastIndexOf()
:返回某个指定的子字符串在字符串中最后出现的位置。
var str1 = "Hello xkd, Congratulations on login!";
console.log(str1.lastIndexOf('o'));
//输出: 31
-
slice()
: 返回字符串中提取的子字符串。
var str1 = "Hello xkd, Congratulations on login!";
console.log(str1.slice(6, 8));
//输出: xk
-
split()
:把字符串分割成字符串数组。
var str1 = "Hello xkd, Congratulations on login!";
console.log(str1.split(" "));
//输出: ["Hello", "xkd,", "Congratulations", "on", "login!"]
-
substring()
:提取字符串中介于两个指定下标之间的字符。
var str1 = "Hello xkd, Congratulations on login!";
console.log(str1.substring(11, 17));
//输出: Congra
-
replace()
:在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串。
var str1 = "Hello xkd, Congratulations on login!";
console.log(str1.replace("xkd", "summer"));
//输出: Hello summer, Congratulations on login!
-
match()
:返回所有查找的关键字内容的数组。
var str1 = "Hello xkd, Congratulations on login!";
console.log(str1.match(/on/g));
//输出: ["on", "on", "on"]