JavaScript中的字符串

江枫思渺然 提交于 2020-08-11 00:59:39

我们知道字符串(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"]
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!