JS字符串的创建和常用方法

1,274 阅读4分钟

字符串的创建和常用方法

JS定义字符串(三种方式)==> 其中有一种是引用类型(object)

Javascript中,定义字符串有以下3种方式。

字面量创建字符串

使用双引号或单引号包含任意长度的文本。

实例1

任何被引号包含的文本都被称为字符串类型数据

let a = 'true';//把布尔值转化为字符串
let b = '123'; //把数值型转换为字符串
let c = '[1,2,3]';  //把数组转换为字符串
let d = '{x: 1,y: 2}';  //把对象转换为字符串
实例2

单引号和双引号可以配合使用,定义特殊形式的字符串。

let s = 'console.log("Hello,World")'; 

单引号可以包含双引号,或者双引号包含单引号。但是,不能够在单引号中包含单引号,或者双引号中包含双引号。

实例3

由于一些字符包含多重语义,在字符串中需要转义表示,避免产生歧义,转义字符的基本方法:在字符前面加反斜杠。

let y = '''; //  ' 有效的引号字符

构造字符串

使用String() 类型函数可以构造字符串,该函数可以接收一个参数,并把它作为值来初始化字符串。

实例1

下面使用new运算符调用String()构造函数创建一个字符串型对象。

let a = new String(); //创建一个空字符串对象,并赋值给变量a
a = new String('我是构造字符串'); //初始化之后赋值给变量a

通过String构造函数,构造的字符串与字面量创建的字符串的类型是不同的,前置为引用型(引用类型)对象,后者为值类型(基本数据类型)字符串

实例2

下面代码比较了构造字符串和字面量创建的字符串类型的不同

let a1 = new String(1); //构造字符串
let a2 = '1'; //字面量创建字符串
console.log(typeof a1); //返回object,说明是引用型对象
console.log(typeof a2);  //返回string,说明是值类型(基本数据类型)字符串
实例3

String() 也可以作为普通函数使用,把参数转换为字符串类型的值返回。

let a = String(123); //包装字符串
console.log(a); //返回字符串“123”
console.log(typeof a); //返回string,说明是简单的值
实例4

String()允许传入多个参数,但是仅处理第一个参数,并把它转换为字符串返回

let a = String(1,2,3,4);  //带多个参数
console.log(a);  //返回字符串"1"
console.log(typeof a) //返回string,数值被转换为字符串

但是,所有参数表达式都会被JavaScript计算。

实例5

下面变量a在构造函数内经过多次计算之后,最后值递增为5。

let a = 1; //初始化变量
let str = new String(++a, ++a, ++a, ++a);
console.log(str);  //返回2,因为仅处理第一个参数
console.log(a);   //返回5
console.log(typeof str);  //返回object,说明是引用类型对象
console.log(typeof a);  //返回number,说明是数值类型

字符串常用的方法

toLowerCase()——把字符串转为小写,返回新的字符串

let str = 'LSFAFads';
console.log(str.toLowerCase());  //lsfafads  返回的是新字符串

toUpperCase()——把字符串转为大写,返回新的字符串

let str = 'asdaFAS';
console.log(str.toUpperCase());  //ASDAFAS  返回的是新字符串

substring(start,end)——提取字符串中介于两个指定下标之间的字符,包含起始下标位置的字符,但是不包含终止下标位置的字符,返回提取的字符串,不改变原字符串。注意:startend两个参数必须要写,如果只写一个参数,没有效果。

let str = 'lsfafads';
console.log(str.substring(0,5));  //lsfaf   返回提取的字符串,包含起始位置,不包含终止下标位置
console.log(str); //lsfafads 原字符串不发生改变

indexOf()——返回某个指定的字符串在字符串中第一次出现索引位置,如果没有查找到则返回-1,如果找到就返回索引位置。——后期主要的应用场景:模糊查询——搜索

let str = 'lsfafads';
console.log(str.indexOf('f')); //2  找到返回该元素的索引位置,且返回的是第一次出现的索引位置
console.log(str.indexOf('c'));  //-1   没有找到返回-1

substr(start,length)——返回从指定下标开始指定长度的字符串,如果没有写length长度,则默认从指定下标开始到结束位置

let str = 'lsfafads';
console.log(str.substr(1,5));  //sfafa  返回从下标为1的元素开始,返回5个元素(包含开始的元素)
console.log(str.substr(1)); //sfafads   返回从下标为1的元素开始,到字符串结束位置

split()——字符串按指定的字符分割成字符串数组,返回字符串数组

let str = 'lsf@afads';
console.log(str.split('@'));  //返回字符串数组
console.log(str);  //不改变原字符串