JavaScript字符串及常用方法

JavaScript字符串及基本常用方法

1.字符串简介

字符串是一组由16位值组成的不可变的有序序列;通常`由双引号或单引号包括起来,例:

var str = "hello world"; //定义一个字符串;

注意:当一个字符串需要有引用字符出现时,字符串如果使用双引号,那么引用文字用单引号;同理,反过来也可以. 如下所示:

var str = "I like that 'book'";
//或是
var str = 'I like that "book"';

然而,在一部分情况下,如果你一定要使用双引号或是单引号,需要使用转译字符,常用转义字符如下:

转义字符含义
\n换行符
\t制表符
\‘单引号
\“双引号
\双斜杠反斜杠
\r回车符
\f换页符

例如要使用,双引号在var str = “I like that ‘book’”,可以这样写:

var str = "I like that \"book\"";
//输出结果为 "I like that "book""

2.字符串定义方法

在最初我们使用了var str = “hello world”;这种形式定义了一个字符串;而在这,我们还有另一种定义方法,就是使用构造函数String();代码如下:

var str = new String("hello world"); //构造函数法
//输出结果 “hello world”

而在这里我们需要注意尽管两种方式创建的字符串显示完全一样,但是他们不全等,解释如下:

var a = new String('hello world'); //构造函数
var b = "hello world";
a === b; //=>false,结果返回false

这是因为,使用字面量方法创建的字符串的数据类型是String,而使用构造函数方法创建的字符串是一个对象(object); 所以他们的类型不相等,返回结果false; 可以使用 typeof 检查 a,b的数据类型;

console.log(typeof a); 
//检查a字符串的数据类型;返回string
console.log(typeof b); 
//检查b字符串的数据类型;返回object

3.字符串的方法

字符串与数组很像,在底层字符串是以字符数组的形式保存的;因此,由此可以知道,字符串的第一个属性是length(字符串长度);

3.1 length使用方法

 var s = "hello world"; //定义一个字符串
 s.length; 
 //直接使用.来调用length方法,返回字符串长度11,空格也算

3.2 charAt()方法
charAt()可以返回指定索引位置的字符;

使用方法:在charAt()中,传入索引值;例如:charAt(0);

具体实例:

var s = “hello world”; //定义字符串s
s.charAt(0); // => "h" . 此处索引的位置是零,所以是字符串的第一个字母h

注意⚠️,博主亲自测试后,如果在方法里传入字符串中不存在的索引位置(包括负数)会返回空字符串

var s = “hello world”; //定义字符串s
s.charAt(-1); // => "" 

3.3 charCodeAt()方法
charCodeAt()是用于返回指定索引位置的Unicode值;

var s = "hello world";//定义字符串
s.charCodeAt(0);// =>104; 因为0索引位置的字母是h,而h的unicode是104,所以返回值是104;

注意⚠️,博主亲自测试后,如果在方法里传入字符串中不存在的索引位置(包括负数)会返回NaN

3.4 fromCharCodeAt()方法
将Unicode转换为字符串;这个方法有点像charCodeAt的反向方法。但是这里调用这个方法注意使用String来调用。具体如下:

var s = "hello world";//定义字符串
String.fromCharCode(104); //=>h; 因为要查的unicode码是104,104就是h

3.5 indexOf()方法
该方法用于检索字符串中是否含有指定字符,如果字符串中存在指定字符,将返回该字符出现的第一个位置的索引值;如果没有指定字符被检索到,结果将会返回 - 1

具体实例如下:

var s = "hello world"; // 定义一个字符串
s.indexOf('l'); //检索s字符串中是有有字母l;此处返回2,因为是hello里的第一个l,索引位置为2;
s.indexOf('g'); //检索s字符串中是有有字母g;此处返回-1,因为hello world里没有g;

同时,该方法可以指定第二个参数,来指定开始查找的位置。例如

var s = "hello world"; // 定义一个字符串
s.indexOf('l',3); //检索s字符串中是有有字母l;此处返回3,因为从hello里的第二个l开始查找;

3.6 laseIndexOf()方法
该方法和indexOf()方法一样,不同的是indexOf是从前往后找,而此方法是从后往前找。laseIndexOf()也可以指定第二个参数;

var s = "hello world";// 定义一个字符串
s.lastIndexOf('l'); //返回值9,此处的l索引位置是9,是world中的l;
s.lastIndexOf('l',6); //返回值3,此处的l索引位置为3,是hello里的第二个l;

3.7 concat()方法
该方法用来连接一个或多个字符串。作用和+号一样,不会影响原字符串;

var a = "hello, ";
var b = "world";
a.concat(b); //=>"hello, world" 两个字符串会拼串。
a+b;	//=>"hello, world" 两个字符串会拼串,与concat的作用一样;
console.log(a); //=>"hello, "; 不会对原字符串产生影响;

//验证两种拼串方法结果是否完全相等;
var c = a+b;
var d = a.concat(b);
c==d; // 返回true;
c===d; //返回true;

3.8 slice()方法
该方法可以从字符串中截取出指定的内容;同时这个方法也不会影响原字符串,而是将截取的内容返回。

该方法有两个参数:
第一个参数:开始位置的索引,包括开始位置;
第二个参数:结束位置的索引,不包括结束位置;

注意:如果省略第二个参数就会截取到从开始位置到最后的所有字符;
- 也可以传递一个负数作为参数,负数就会从后边开始计算

var s = "abcdefghijklmn";
s.slice(0,3); //返回abc;因为从0的位置开始,3的位置结束,也就是abc
s.slice(4); // 返回"efghijklmn",从第一个索引位置开始,也就是e,由于没有第二个参
数,所以会截取到最后所有的字符;
s.slice(-1); //返回n,应为从最后开始计算,最后一位
s.slice(2,-3); //返回“cdefghijk”;后边的三位不要,前面从索引第二位也就是c开始截取

3.9 split()方法
该方法将字符串拆分为一个数组;不会影响原数组;返回值存入数组;
参数:需要一个字符串作为参数,将会根据该字符去拆分数组;
如果传递一个空串作为参数,则会将每个字符都拆分为数组中的一个元素;

var s = "abcdefghijklmn"; //定义一个字符串
s.split("");//返回["a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n"]
s.split("e"); //返回["abcd", "fghijklmn"];以e为拆分点;

3.10 subString()方法
该方法可以截取一个字符串,和slice()类似;

可以传递两个参数:
第一个参数,表示开始截取位置的索引(包括开始位置);
第二个参数,表示结束位置的索引(不包括结束位置);

不同的是这个方法不能接受负值作为参数:如果使用负数作为参数,则默认使用0;

而且它还会自动去调整参数的位置,如果第二个参数小与第一个参数,则自动交换;

var s = "abcdefghijklmn";//定义一个字符串
s.subString(0,1); //返回a;从第0个索引开始,1结束(不包含结束位置)所以是a
s.substring(2,0); //返回ab;第二个参数小于第一个,自动调整位置,0开始,2结束;
s.substring(-30); //返回全部;因为负数做参数,默认索引值为0;
s.substring(30); //返回空串;找不到索引位置

3.11 substr()方法
该方法用来截取一个字符串;不会影响原数组;

有两个参数:
第一个参数是截取位置的索引;
第二个参数姐截取位置的长度;

  • 如果不传入任何参数,将截取字符串全部内容;
  • 如果只传入一个参数,将会从开始索引位置截取到最后;
  • 如果传入负数,默认索引从0开始;
  • 如果索引不存在,超出字符串的长度,将返回空串;
var s = "abcdefghijklmn";//定义一个字符串
s.substr(2,5); //返回"cdefg"; 从第2索引开始,截取5个
s.substr(); //返回 "abcdefghijklmn";不传入任何参数,将截取字符串全部内容;
s.substr(-30);//返回"abcdefghijklmn";因为负数做参数,默认索引值为0
s.substr(30); //返回空串;找不到索引位置

3.12 toUpperCase()方法
将字符串转化为大写

var s="abcde";
s.toUpperCase(); // 返回“ABCDE”

3.13 toLowerCase()方法
将字符串转化为小写

var s="ABCDE";
s.toLowerCase(); // 返回“abcde”
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值