字符串
一、创建字符串
-
字面量创建
var str = 'hello'
-
构建函数创建
var str = new String('hello')
两种方式创建的字符串没有区别,除了在控制台打印显示的区别除外
二、字符串操作
-
字符串有
length
属性,表示字符串的长度,也就是字符串中字符的个数- 注: 空字符串也算一个字符
-
字符串是按照索引排列,可以通过索引访问每一个字符,字符值只能访问 ,不能改变
var str = 'hello world' document.write(str[1]) //e str[1] = 'z' document.write(str[1]) //e,并没有改变原字符串的值
for
循环遍历字符串,和遍历数组方法一样
三、模板字符串(重点)
-
ES2015前,字符串拼接使用
''
(单引号)或者""
(双引号),但是在代码换行时,操作和输出变量值时不方便 -
ES2015后, 字符串拼接使用 ``(反引号,英文状态下Esc下面那个键) ,引用变量时可以使用 ${变量名}
var str = '<div> <p> <span></span> </p> </div>' //使用单引号会报错,要在每一行都用''在拼接起来,很麻烦 var str = `<div> <p> <span></span> </p> </div>` //使用``(反引号),没有报错,不用拼接
四、编码(了解)
- ASSCLL码: 记住英文大小写相差32,A65,a97
- unicode编码: 也叫万国码,统一码,常用UTF-8就是一种8位的unicode字符集
- GBK: 汉字内码扩展规范
五、字符串的常用方法
- 我们操作字符串,也有一堆的方法来帮助我们操作
- 字符串和数组有一个一样的地方,也是索引来排列的,从0开始
-
charAt(索引`是找到字符串中指定索引的位置返回
var str = 'jack' //使用charAt找到字符串中的某一个元素 var index = str.charAt(2) document.write(index) //c
- 因为字符串也是按照索引进行排列的,也是从 0 开始的
- 所以索引2的位置是c
-
没有对应的索引,那么就会返回一个空字符串
var str = 'jack' //使用charAt找到字符串中的某一个元素 var index = str.charAt(5) document.write(index) //''
- 这个字符串没有索引为5的位置
- 所以会返回一个空字符串’’
-
charCodeAt(索引)
就是返回对应索引位置元素的unicode编码var str = 'jack' //使用charCodeAt找到字符串中的某一个元素 var index = str.charCodeAt(0) document.write(index) //74
- 因为
j
在unicode对照表对应的是74,所以返回74
- 因为
-
indexOf()
就是按照字符,找到对应的索引var str = 'jack' //使用indexOf找到字符串中的某一个元素 var index = str.indexOf('j') document.write(index) //0
- 因为字符
j
在字符串jack
中的索引位置是0,所以返回0
- 因为字符
-
lastIndexOf()
返回()中,最后一个字符的索引var str = 'aabbac' //使用lastIndexOf找到字符串中的某一个元素 var index = str.lastIndexOf('a') document.write(index) //4,返回最后一个a的索引
-
substring
是用来截取字符串的语法: substring(从哪个索引开始,到哪个索引截止),包含开始索引,不包含结束索引
var str = 'hello' // 01234 //使用substring截取字符串 var newStr = str.substring(1,3) document.write(newStr) //el //从索引1开始,到索引3结束,包含开始索引,不包括结束索引 //所以返回el
-
substr
也是用来截取字符串的语法: substring(从哪个索引开始,截取多少个)
var str = 'hello' // 01234 //使用substr截取字符串 var newStr = str.substring(1,3) document.write(newStr) //ell //这个方法和substring不一样的是,第二个参数是截取多少个 //从索引1开始,截取3个,所以得到ell
-
replace
replace
用于在字符串中用一些字符替换掉另一些字符var str = 'hello world' //使用substr截取字符串 var newStr = str.replace('world', "school") document.write(newStr) //hello school
-
split
split()
方法用于把一个字符串分割成字符串数组。语法:
split(以什么作为分隔,分割多少次)
var str="How are you doing today?" //使用split分隔字符串 document.write(str.split(" ") + "<br />") //How,are,you,doing,today? document.write(str.split("") + "<br />") //H,o,w, ,a,r,e, ,y,o,u, ,d,o,i,n,g, ,t,o,d,a,y,? document.write(str.split(" ",3)) //How,are,you document.write(str.split("o",3) + "<br />") //H,w are y,u d
-
trim()
trim()
方法用于去除首尾字符串的空格var str = " Runoob "; document.write(str.trim()); //Runoob
-
includes
includes
方法用于检测数组或者字符串是否包含某元素var arr = ['baidu','google','sougou'] arr.includes('baidu') //true arr.includes('taobao') //false
-
startsWith()&endsWith()
- arr.startWith(字符)是否以字符开始
- arr.endsWith(字符)是否以字符结束
- 是返回true,不是返回false
-
toLowerCase 和 toUpperCase
这两个方法分别是用来给字符串转成小写字母和大写字母的
var str = 'HELLO'
//使用toLowerCase转换成小写
var lower = str.toLowerCase()
document.write(upper) //hello
//使用toUpperCase转换成大写
var upper = upper.toLowerCase()
document.write(upper) //Hello