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