字符串
1)什么是字符串:
字符串就是一组字符的集合,用引号包裹,把好多字符组合成一串
字符串的创建方式
字面量方式创建:
1)用单引号创建:var str = 'hello'
2)用双引号创建:var str = "hello"
3) 用反引号(模板字符串)创建:var str = `hello`(等一会再说反引号和单引号双引号的区别)
内置构造函数方式创建:
语法:var str = new String('hello')
var str1 = 'hello'
var str2 = "hello"
var str3 = `hello`
console.log(str1);
console.log(str2);
console.log(str3);
2)反引号,双引号,单引号的区别
区别一:单引号和双引号不支持换行
反引号(模板字符串)是支持换行书写的
区别二:单引号和双引号中间是不识别变量的,但是反引号中间可以识别变量
识别变量的语法:${变量名}
var name = '张三'
var age = 18
var height = 180
// 请输出:大叫好,我叫?,今年?岁了,我的身高是?
// 请输出:大叫好,我叫张三,今年18岁了,我的身高是180
console.log('大叫好,我叫name,今年?岁了,我的身高是?');
console.log("大叫好,我叫name,今年?岁了,我的身高是?");
console.log("大叫好,我叫" + name + ",今年" + age + "岁了,我的身高是" + height);
console.log(`大叫好,我叫${name},今年${age}岁了,我的身高是${height}`);
3)字符集
计算机在做运算的时候其实是用二进制做运算的
把数字转成二进制比较好转
但是把一些字符(英文字母、标点符号、汉字、日语、韩语)转成二进制规则就不明确了,不知道该怎么转了,因为毕竟每个国家的语言都不一样,字长得也不一样,所以转换起来就很麻烦。
为了解决这个问题,专门出了一个表,叫做ASCII表
在这个表中有每个字符对应的编码
常见的字符对应的编码
a =========97 依次往后推
A==========65 依次往后推
字符0 ======48 依次往后推
空格======32
回车====13
4)字符串的基本操作
1.legnth属性:表示字符串中字符的个数,有几个字符长度就是几,这是一个只读属性,也就是只能获取不能设置
语法:字符串.length
2.索引属性,字符串也是按照索引进行排列的,从左到右索引从0开始依次+1,也是一个只读属性
3.遍历字符串,借助于for循环,因为字符串可以通过索引得到每一个字符
遍历for循环 起始值:0 结束值:<字符串的长度 步长:一次+1
var str = 'hello word,你 好'
console.log(str.length);
// 获取索引3对应的字符
// console.log(str[3]);
// console.log(str[6]);
for (var i = 0; i < str.length; i++) {
console.log(str[i]);
}
5)字符串的常用方法
通用语法:字符串.方法名()
注意:字符串的所有方法都不会改变原始字符串
1.charAt()
语法:字符串.charAt(索引)
返回值:找到该索引位置的字符,如果该索引不存在就返回空字符串,如果该索引存在就返回对应的字符即可
他的意思和[索引]是一样的
和[索引]的区别
charAt()===该索引不存在,就返回空字符串
[索引]====该索引不存在,就返回undefined
var str = 'hello word ABCD 你好'
//找到索引8对应的字符
var res = str.charAt(8)
没有80这个索引 结果就是空的字符串
var res = str.charAt(80)
console.log(res);
var res1 = str[80]
console.log(res1);
2.charCodeAt()
语法:字符串.charCodeAt(索引)
返回值:该索引对应的字符的字符编码,该索引不存在,找不见的时候返回NaN
//======2.charCodeAt()
//找到2索引对应的字符,对应的是l,会拿到l对应的编码
var res = str.charCodeAt(2)
console.log(res);
// 找到0索引对应的字符,对应的是h,会拿到h对应的编码
var res1 = str.charCodeAt(0)
console.log(res1);
var res2 = str.charCodeAt(80)
console.log(res2);
3.toUpperCase()
语法:字符串.toUpperCase()===不需要写参数
返回值:将原始字符串中的所有字母全部转成大写
// =======3.toUpperCase()
var res = str.toUpperCase()
console.log(res);
4.toLowerCase()
语法:字符串.toLowerCase()===不需要写参数
返回值:将原始字符串中的所有字母全部转成小写
// ========4.toLowerCase()
var res1 = str.toLowerCase()
console.log(res1);
5.substr
语法:字符串.substr(开始索引,个数)
返回值:截取出来的一部分数据
注意:不写第二个参数,就从开始位置截取到最后
var str = 'hello word'
//从索引2的位置开始,截取5个字符
var res = str.substr(2, 5)
console.log(res);
6.substring()
语法:字符串.substring(开始索引,结束索引)
返回值:截取出来的一部分数据
注意:包前不包后
不支持负数
var str = 'hello word'
//从索引2的位置截取到索引7的位置
var res = str.substring(1, -2)
console.log(res);
7.slice
语法:字符串.slice(开始索引,结束索引)
返回值:截取出来的一部分数据
支持写负数
var str = 'hello word'
var res = str.slice(1, -2)
console.log(res);
8.split()
语法:字符串.split('分隔符')
作用:用分隔符拆分字符串
返回值:一定是一个数组,将字符串按照分隔符分成几段数据存储到数组中
var str = 'hello world'
var res = str.split(" ")
console.log(res);
var res = str.split("o")
console.log(res);
9.concat()
语法:字符串.concat('字符串1','字符串2'.....)
作用:将字符串做拼接,作用和加号是一样的。
返回值:拼接好的字符串
var str = 'hello world'
// var res = str.concat('你好','我好')
// console.log(res);
var res = str + '你好' + '我好'
console.log(res);
10.indexOf()====从左到右找
语法:字符串.indexOf(你要查找的字符,从哪个索引开始查)
返回值:如果该字符存在,返回的就是该字符对应的索引,不存在就是-1
var str = 'hello weorld'
//var res = str.indexOf('e')
//console.log(res);
var res = str.indexOf('e',2)
console.log(res);
11.lastIndexOf()====从右到左找
和indexOf一样,就是反着找
var res = str.lastIndexOf('e')
console.log(res);
12.includes()
语法:字符串.includes('字符或者字符串')
作用:在该字符串当中看是否有这个字符或者字符串
返回值:如果有就是true,如果没有就是false
var str = 'hello world'
var res = str.includes('od')
console.log(res);
13.startsWith()
语法:字符串.startsWith('字符或者字符串')
作用:看该字符串是否以这个字符或者这个字符串开头
返回值:是true,不是false
var res = str.startsWith('hd')
console.log(res);
14.endsWith()
语法同上
作用:看该字符串是否以这个字符或者这个字符串结尾
返回值:是true,不是false
var res = str.endsWith('ldd')
console.log(res);
15.trim()
语法:字符串.trim()
作用:去除首尾空白
返回值:去除首尾空白之后的字符串(中间的空白去不了)
var str = ' hello world '
console.log(str);
var res = str.trim()
console.log(res);
16.trimStart()或者trimLeft()
去除开头的空白(去除左边的空白)
var res1 = str.trimStart()
console.log(res1);
var res2 = str.trimLeft()
console.log(res2);
17.trimEnd()或者trimRight()
去除尾部空白(去除右边的空白)
var res3 = str.trimEnd()
console.log(res3);
var res4 = str.trimRight()
console.log(res4);
18.replace()
语法:字符串.replace(你要替换的字符,新字符)
作用:用一个新字符替换一些老字符
返回值:替换好的新字符串
注意点:只能替换一个片段
var str = 'hello world'
var res = str.replace('ld','哈哈')
console.log(res);
var res = str.replace('o','哈哈')
console.log(res);