JS字符串
字符串介绍
JS字符串的概念
字符串就是一串字符,由双(单)引号括起来。
字符串是 JavaScript 的一种数据类型。
字符串的定义和使用
字符串的定义
方式一(推荐): var str = ‘亲’; //基本类型
定义了一个字符串变量str,内容为'亲'
方式二: var str = new String(“hello”); //引用类型
定义一个字符串变量str,内容为hello,
注意: 此刻str为引用类型(object对象)
用new产生的变量都是引用类型的变量,也叫对象
方式三: var str = String(‘hello’);
基本类型: string, number, boolean, undefined,null等
引用类型/对象: Array , Date, Object, String, Function等
//
new String()和String()的区别
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()时,它只是转换成原始的字符串,并返回转换后的值.
装箱与拆箱的概念
值类型-->转换--->引用类型 装箱
new 装箱
引用类型 --> 转换-->值类型 拆箱
toString() 拆箱
字符串的属性
length: 表示字符串的长度
例如 : var str = “how are you”;
console.log(str.length);
console.log(str[0]); //获取字符串中对应下标的字符
注意: ECMAScript 中的字符串是不可变的; 也就是说,字符串一旦创建,它们的值就不能改变.
例如: var str = “亲,包邮哦”;
str[0] = “唉”; //str内容不会改变
如果要改变某个变量保存的字符串,首先要销毁原来的字符串,然后再用另一个包含新值的字符串填充该变量.
var str = “Hello”;
str = str+” world!”;
字符串的方法(函数)
字符串的方法(函数)
1.str.charAt(3): 获取下标为3的字符
2.str.charCodeAt(3) 获取下标为3的字符的编码(ASCII码)
3.String.fromCharCode(94); ASCII编码转换成字符
该方法是String的静态方法,所以用String调用,
如:var str = String.fromCharCode(98,99); //可传入多个参数
ASCII(American Standard Code for Information Interchange,美国标准信息交换代码)
4.查找
4.1 search 找到了返回下标,找不到返回-1
支持正则
var str = "abc123";
console.log(str.search("c"));2
console.log(str.search("z"));-1
console.log(str.search(/a/));/a/是正则表达式 输出0
4.2 indexof 找到了返回下标,找不到返回-1
第2个参数,默认是从0开始,也可以指定位置
不支持正则
var str = "abc123";
console.log(str.indexOf("c"));2
console.log(str.indexOf("z"));-1
console.log(str.indexOf(/a/));-1
4.3 match 找到了返回数组,找不到 返回null
var str = "abc123";
console.log(str.match("c")); //返回数组
console.log(str.match("1c")); //返回null
4.4 lastIndexOf 从后往前找
var str = "abc123abc";
console.log(str.lastIndexOf("c")); // 8
console.log(str.lastIndexOf("c", 5)); // 2
5.截取系列
5.1 slice 包含开始位置,不包含结束
var str = '台上有一位绝世美男子,今年18岁';
console.log(str.slice(7, 10));// 美男子
console.log(str.slice(7));// 美男子,今年18岁
5.2 substring 包含开始位置,不包含结束,可以自动调整参数的顺序,大小顺序不影响
var str = '台上有一位绝世美男子,今年18岁';
console.log(str.substring(10, 7));// 美男子
console.log(str.substring(7));// 美男子,今年18岁
5.3 substr 第2个参数,表示截取的 个数
var str = '台上有一位绝世美男子,今年18岁';
console.log(str.substr(7));// 美男子,今年18岁
console.log(str.substr(7, 3));// 美男子
6.合并 concat
var str1 = "我是";
var str2 = "美男子";
var str3 = str1 + str2;
var str4 = str1.concat(str2, "!");
console.log(str3);//我是美男子
console.log(str4);//我是美男子!
7.切割 返回一个新的数组
var str = "abc-123";
console.log(str.split());//['abc-123']
console.log(str.split(""));//['a', 'b', 'c', '-', '1', '2', '3']
console.log(str.split("-"));//['abc', '123']
8.替换
var str = "台上有一个男子"; //男 --> 美男
var str1 = str.replace("男", "美男");
console.log(str);// 台上有一个男子
console.log(str1);// 台上有一个美男子
9.转大写
var str = "abc123";
var str1 = str.toUpperCase()
console.log(str1);//ABC123
10.转小写
var str = "ABCDEGGSASDASDFD";
var str1 = str.toLowerCase()
console.log(str1);//abcdeggsasdasdfd
11.重复多少次
var str = "我爱你!";
var str1 = str.repeat(100);
console.log(str1);//重复100次我爱你
12.字符串模板 ES6
// var s = "很";
// var str = "今天天气" + s + "好";//很
// console.log(str);
var s = "很";
var str = `今天天气${s}好`;
console.log(str);//今天天气很好
其他应用
var a = 10;
var b = 20
var str = "计算的结果:" + a + b;
console.log(str);//计算结果是1020
var str = `计算结果是:${a + b}`;
console.log(str);//计算结果是30
var str1 = `aaa`;
console.log(typeof str1); //string
13 trim() 去掉前后的空白
var str = " 你好 帅哦! ";
console.log(str.trim());//你好 帅哦!
console.log(str.trimEnd());// 你好 帅哦 去除后面的空白
console.log(str.trimStart());//你好 帅哦! 去除前面的空白
14 padStart()
var str = "我是帅哥";
console.log(str.padStart(10, "."));//10位长度用.填充满前面 ......我是帅哥
15 padEnd(), 不够就填充
var str = "我是帅哥";
console.log(str.padEnd(10, "."));//10位长度用.填充满后面 我是帅哥......
16 includs 是否包含
var str = "abc123";
console.log(str.includes("1c"));
g global 全局
var str = "H e l ** l o Wo r L d !";//要正确表示*得转义成:\*
console.log(str.replace(/\*/g, "").replace(/ /g, ""));//HelloWorLd!