关于我成长为前端高级工程师的前进之路
1.字符串
1.1字符串的概念
- 字符串就是一串字符,由双(单)引号括起来
- 字符串是JavaScript的一种数据类型
1.2字符串的定义
js
复制代码
var str = "hello world"; //基本类型
//定义了一个字符串变量str,内容为"hello world"
js
复制代码
var str = String("hello world");
js
复制代码
var str = new String("hello world"); //引用类型
//这里的str 为引用类型(object对象)
//用new产生的变量都是用来引用类型的变量,也叫对象
- new String() 和 String()的区别
js
复制代码
var s1 = new String("hello world");
var s2 = String("hello world");
console.log(typeof s1); //object
console.log(typeof s2); //string
- 当String() 和 元素符new 一起使用,那么String()是作为构造函数使用,它返回的是一个新创建的String对象.
- 当不用new运算符调用String()时,它只是转换成原始的字符串,并返回转换的值
1.3 装箱和拆箱
- 值类型-->转换-->引用类型 装箱
- 引用类型-->转换-->值类型 拆箱
2.字符串的属性和方法
2.1 字符串的属性
js
复制代码
var str = "how are you";
console.log(str.length);
console.log(str[0]); //获取字符串中对应下标的字符
- ECMAScript 中的字符串是不可变的; 也就是说,字符串一旦创建,它们的值就不能改变.(恒定性)
js
复制代码
var str = "hello world";
str[0] = "b"; //不会改变
- 如果想要改变某个变量保存的字符串,首先要销毁原来的字符串,然后再用另一个包含新值的字符串填充该变量
2.2 字符串方法
常用的20个字符串方法
js
复制代码
//1.charAt() 通过下标找字符
//2. charCodeAt() 根据下标返回字符串的unicode
//3.String.fromCharCode() 把unicode转换成字符
//4.search() 支持正则,找到了返回下标,找不到返回-1
//5.match() 支持正则,找到了返回数组,找不到返回 null
//6.indexOf() 找到了返回下表,找不到返回-1,第2个参数,默认是从0开始,也可以指定位置
//7.lastIndexOf() 从后面找
//8.slice() 截取 包含开始位置,不包含结束位置
//9.substring() 截取 2个参数,大小位置随便写(会自动调整位置),包含开始位置,不包含结束位置
//10.substr() 截取 2个参数,第一个是开始位置,第二个是截取个数
//11.concat() 合拼,拼接
//12.replace() 替换
//13.split() 切割
//14.repeat() 重复
//15.toUpperCase() 转大写
//16.toLoweCase() 转小写
//17.trim() 去掉前后的空白
//18.padStart() 前面填充
//19.padEnd() 后面填充
//20.includes() 是否包含指定的字符
通过下标找字符
js
复制代码
str.charAt(3);//获取下标为3的字符
通过下标获取对应字符的编码(ASCII码)
- charCodeAt()方法,通过下标获取对应字符的编码
js
复制代码
str.charCodeAt(3);//获取下标为3的字符的编码(ASCII码)
ASCII码转换字符
- String.fromCharCode()方法,ASCII码转换成字符
- 该方法是String的静态方法,所以用String调用
- 可以传递多个参数,返回字符串
js
复制代码
String.fromCharCode(94);//ASCII码转换成字符
var str = String.fromCharCode(98,99);//多个参数
查找方法(4个) search() match() indexOf() lastIndexOf()
- search()方法用于在
String
对象中执行正则表达式的搜索,寻找匹配项
- 通过参数去寻找,找到了返回下标,找不到返回-1
js
复制代码
var str = "abc123";
console.log(str.search("c"));
console.log(str.search("b"));
console.log(str.search(/a/));
- match()方法检索字符串与
正则表达式
进行匹配的结果
- 通过参数去寻找,找到了返回数组,找不到返回-1
js
复制代码
var str = "abc123";
console.log(str.match("c")); //返回数组
console.log(str.match("1c")); //null
- indexOf()方法从字符串前面去寻找,找到了返回下标,没有找到返回-1
- 第一个参数,是寻找值
- 第二个参数,默认是从0开始,也可以指定位置
- 不支持正则表达式
js
复制代码
var str = "abc123";
console.log(str.indexOf("c"));
console.log(str.indexOf("b"));
console.log(str.indexOf(/a/)); //返回-1
- lastIndexOf()方法从后面找,找到了返回下标,没有找到返回-1
- 第一个参数,是寻找值
- 第二个参数,默认是字符串最后位置开始,也可以指定位置
- 不支持正则表达式
js
复制代码
var str = "abc123";
console.log(str.lastIndexOf("c"));
console.log(str.lastIndexOf("b"));
console.log(str.lastIndexOf(/a/)); //返回-1
截取方法(3个) slice() substring() substr()
- slice()方法,两个参数,包含开始位置,不包含结束位置
js
复制代码
var str = "hello world";
console.log(str.slice(6,7));
console.log(str.slice(6));
- substring 包含开始位置,不包含结束位置,会自动调整参数位置
js
复制代码
var str = "hello world";
console.log(str.substring(6,7));
console.log(str.substring(7,6));
console.log(str.substring(6));
- substr 第一个参数表示起始的位置 第二个参数不写表示为截取后面的全部
- 第二个参数,表示截取的
个数
js
复制代码
var str = "hello world";
console.log(str.substr(6));
console.log(str.substr(6,3));
拼接方法
js
复制代码
var str1 = "hello";
var str2 = "world";
console.log(str1+str2); //用'+'拼接
console.log(str1.concat(str2));//concat拼接
替换方法
js
复制代码
var str = "hello world";
var str1 = str.replace("hello","你好");
console.log(str);
console.log(str1);
切割方法
- split()通过分隔符,拆分成一个数组,返回一个数组
js
复制代码
var str = "hello world";
var arr = str.split("");
console.log(str); //字符串
console.log(arr); //数组
重复方法
js
复制代码
var str = "hello world";
console.log(str.repeat(10));
大小写转换(2个)
- toUpperCase() 转大写
- toLowerCase() 转小写
js
复制代码
var str1 = "hello world";
console.log(str1.toUpperCase()); //HELLO WORLD
var str1 = "Hello World";
console.log(str1.toLowerCase());//hello world
去掉字符串的空白
js
复制代码
var str = " hello world ";
console.log(str.trim()); //hello world
前后填充(2个)
- padStart() 前面填充
- padEnd() 后面填充
- 参数1,将字符串填充的长度,参数2,填充的字符
js
复制代码
var str = "hello";
console.log(str.padStart(10,".")); //.....hello
var str = "hello";
console.log(str.padEnd(10,".")); //hello.....
是否包含指定字符
- includes() 是否包含指定字符,包含返回true,否则false
js
复制代码
var str = "hello world";
console.log(str.includes("hello"));//true