目录
一、什么是字符串?
二、字符串的创建方式
三、字符串的常用方法
1、charAt(索引值)
2、charCodeAt(索引值)
3、fromCharCode(ASCII)
4、toUpperCase()
5、toLowerCase()
6、substr、substring、slice
7、replace("被替换的字符","新字符")
8、split("指定分割符")
9、indexOf、lastIndexOf
10、trim()、trimStart()|trimLeft()、trimEnd()|trimRight()
四、转义字符
五、JSON格式字符串
字符串就是多个只读字符组成的数组。
为什么说是只读?
只读是因为字符串的所有方法都不会改变原字符串,包括通过下标修改,字符串依旧是保持原样。
var str="abcd"
console.log(str) //"abcd"
str[0]="c"
console.log(str) //"abcd"
为什么说字符串也是数组?
因为和数组有相同点
1)、能够通过下标获取某个字符;
2)、能够使用.length获取字符串的长度;
3)、能够通过循环遍历得到每一个字符;
字符串的创建也分两种:字面量和构造函数
// 字面量方式
var str="hello"
// 构造函数方式
var str2=new String("hello")
字符串也可以获取长度,通过.length。所以可以对字符串进行遍历。
var str="hello"
for(var i=0;i
注意:不能通过下标去修改字符串中某一个字符的值,修改不会生效。
通过传入字符的索引值,返回对应的字符。如果超出了原本字符串的范围,那么返回空字符。
var str="abc"
var str1=str.charAt(0)
console.log(str1) //a
通过传入字符的索引值,返回对应字符的ASCII编码。如果超出了字符串的长度,那么返回NaN。
var str = "abc";
var str1 = str.charCodeAt(0);
console.log(str1); // 97
通过传入ASCII码,能够将传入的ASCII转换为对应的字符。
var str = "abc";
var str1 = str.charCodeAt(0);
console.log(str1); // 97
console.log(String.fromCharCode(str1))
注意,该方法只存在与String上,任何自定义的字符串使用该方法就会报错。
可以将字符串中所有小写字母转为大写字母,不会影响原来字符串。
var str="Hello"
console.log(str.toUpperCase())
console.log(str)
将字符串中所有大写字母转为小写,不会影响原来的字符串。
var str="HELLO"
console.log(str.toLowerCase())
console.log(str)
var str="hello"
console.log(str.substr(0,3)) //hel
var str="hello"
console.log(str.substring(0,2)) //he
//substring不支持负数索引
console.log(str.substring(0,-1))// 空字符
slice(开始索引,结束索引):不包含结束索引的位置,左闭右开的区间。
var str="hello"
console.log(str.slice(0,2)) // he
//slice支持负数索引
console.log(str.slice(0,-1)) // hell
replace可以替换字符串中指定的字符串,但只能替换遇见的第一个,如果后面还有,就不会被替换。
解决办法:循环或者正则表达式。
var str="asdjajd"
var str1=str.replace("a","*")
console.log(str1) //*sdjajd
可以将字符串按照指定字符分割后,以数组的形式返回,不影响原字符串。
var str="a,b,c,d"
var str1=str.split(",")
console.log(str1) //[ 'a', 'b', 'c', 'd' ]
// 如果切割的是空字符串,每个字符都会分隔开,变成数组。
两者都是查找指定字符是否在字符串中。
indexOf是从前往后找,lastIndexOf是从后往前找,都只能找到第一个出现的位置,如果后面再出现,也不会返回其下标。
当字符串中不存在要查找的位置时,返回-1,存在则返回下标。
var str="abcda"
console.log(str.indexOf("a")) // 0
console.log(str.lastIndexOf("a")) // 4
console.log(str.indexOf("e")) //-1
console.log(str.lastIndexOf("e"))
都是能够去除字符串的空格。
trim:去掉首尾空格
trimStart()|trimLeft():去掉首空格
trimEnd()|trimRight():去掉尾空格
var str1 = " 哈哈哈哈 ";
var str2 = " 哈哈";
var str3 = " 哈哈";
var str4 = "哈哈 ";
var str5 = "哈哈 ";
console.log(str1.trim());
console.log(str2.trimStart());
console.log(str3.trimLeft());
console.log(str4.trimEnd());
console.log(str5.trimRight());
/*
哈哈哈哈
哈哈
哈哈
哈哈
哈哈
*/
何时使用?
在字符串中出现了和程序冲突的字符。
语法:\要转义的字符,如: "\"",表示将一个引号进行转义。
特殊:
1、指定字符有特殊作用:
\n:换行
\t:制表符
2、可以转义unicode编码:
\uxxxx
后端有可能传递的是字符串类型的对象,即:'{"name":"txl","age":"18"}'。
我们需要将这种格式的字符串转换成我们所熟悉的对象类型,可以使用JS内置的一个方法:JSON.parse(JSON格式字符串),转换之后就可以获取对象中保存的属性以及属性值了。
注意:字符串中对象的key需要加上双引号。
也可以将对象转为JSON字符串,使用:JSON.stringify(要转换的Object)。