JS字符串

84 阅读4分钟

字符串的概念

字符串就是一串字符,由双(单)引号括起来。
字符串是 JavaScript 的一种数据类型。

字符串的定义和使用

方式一 字面量表达式

var str = "字符串";

方式二 构造函数创建字符串

var str = new String("字符串");

【注】此刻str为引用类型(object对象)

方式三

var str = String("字符串");

基本类型: string, number, boolean, undefined,null等
引用类型/对象: Array , Date, Object, String, Function等

字符串的属性

length:表示字符串的长度

var str = "how are you";
//获取字符串长度
console.log(str.length);//11
//获取字符串中对应下标的字符
console.log(str[0]);//h 

【注】ECMAScript 中的字符串是不可变的; 也就是说,字符串一旦创建,它们的值就不能改变。

var str = "我恨你!";
str[1]="爱";//不会改变
console.log(str);//我恨你!

如果要改变某个变量保存的字符串,首先要销毁原来的字符串,然后再用另一个包含新值的字符串填充该变量。

var str = "Hello";
str += " world!";
console.log(str);//Hello world!

字符串方法

charAt()

通过下标索引字符

var str = "abc123";
console.log(str.charAt(2));//c
console.log(str[2]);//c

charCodeAt()

将字符转换成Unicode码

var str = "我爱你";
console.log(str.charCodeAt(0));//25105
console.log(str.charCodeAt(1));//29233
console.log(str.charCodeAt(2));//20320

String.fromCharCode()

静态方法,将Unicode码转换成字符。

var str = String.fromCharCode(25105, 29233, 20320);
console.log(str);//我爱你

search()

查找,找到了返回下标,找不到返回-1,支持正则表达式。

var str = "abc123"
console.log(str.search("c"));//2
console.log(str.search("z"));//-1
console.log(str.search(/a/));//0

indexOf()

查找,找到了返回下标,找不到返回-1。有两个参数,第二个参数可写,可不写。第二个参数表示开始查找的位置。

var str = "abc123"
console.log(str.indexOf("c"));//2
console.log(str.indexOf("z"));//-1
console.log(str.indexOf(/a/));//-1
console.log(str.indexOf("b", 2));//-1 从下标为2的位置从前往后找

lastIndexOf()

查找字符串最后一次出现的位置, 如果没找到则返回-1。有两个参数,第二个参数可写,可不写。第二个参数表示开始查找的位置。

var str = "abc123abc"
console.log(str.lastIndexOf("b"));//7
console.log(str.lastIndexOf("b", 5));//1 从下标为5的位置从后往前找

match()

查找,支持正则,找到了返回数组,找不到返回null

var str = "abc123";
console.log(str.match("c"));//['c', index: 2, input: 'abc123', groups: undefined]
console.log(str.match("z"));//null

slice()

截取,包含开始位置,不包含结束位置

var str = "今天的天气很晴朗"
console.log(str.slice(5, 8));//很晴朗
console.log(str.slice(3));//天气很晴朗

substring()

截取,包含开始位置,不包含结束位置,可以根据参数的大小自动调整位置。

var str = "今天的天气很晴朗"
 console.log(str.substring(5, 8));//很晴朗
 console.log(str.substring(8, 5));//很晴朗
 console.log(str.substring(3));//天气很晴朗

substr()

截取,第一个参数表示开始截取的下标,第二个参数,表示截取的个数。

var str = "今天的天气很晴朗"
console.log(str.substr(5, 3));//很晴朗
console.log(str.substring(3));//天气很晴朗

concat()

合并字符串,可合并多个

var str = "我喜欢"
var str2 = "吃水果"
console.log(str.concat(str2, "比如,西瓜"));//我喜欢吃水果比如,西瓜

split()

切割,根据参数,返回一个新的数组。

var str = "2023-9-11"
console.log(str.split("-"));//(3) ['2023', '9', '11']

replace()

替换

var str = "今天的天气很晴朗"
console.log(str.replace("很晴朗", "有雨"));//今天的天气有雨

toUpperCase()

英文字母转大写

var str = "abc123abc";
console.log(str.toUpperCase());//ABC123ABC

toLowerCase()

英文字母转小写

var str = "PERFECT"
console.log(str.toLowerCase());//perfect

repeat()

重复字符串

var str = "重要的事情说三遍! ";
console.log(str.repeat(3));//重要的事情说三遍! 重要的事情说三遍! 重要的事情说三遍!

trim()、trimEnd()、trimStart()

trim:去掉前后的空白
trimEnd:去除后面的空白
trimStart:去除前面的空白

var str = "    abc 123 abc  "
console.log(str);//    abc 123 abc  
console.log(str.trim());//abc 123 abc
console.log(str.trimEnd());//    abc 123 abc
console.log(str.trimStart());//abc 123 abc  

padStart()、padEnd()

padStart:设置长度,不够长度就在前面填充 padEnd:设置长度,不够长度就在后面填充

var str = "今天的天气很晴朗";
console.log(str.padStart(15, "."));//.......今天的天气很晴朗
console.log(str.padEnd(15, "."));//今天的天气很晴朗.......

includes()

是否包含指定的字符,包含返回true,不包含返回false。

var str = "abc123abc";
console.log(str.includes("c1"));//true

字符串模版(ES6)

用两个反引号(``)将字符串括起来,中间的表达式或变量就用${}包裹。

var c = "不";
var str = `今天天气${c}好`;
console.log(str);//今天天气不好
console.log(typeof str);//string

Math对象

Math对象可以用于执行数学任务
Math对象的常用函数:

Math.round(3.6)     //四舍五入
Math.random()       //返回0-1之间的随机数
Math.max(num1, num2)   //返回较大的数
Math.min(num1, num2)   //返回较小的数
Math.abs(num)       //绝对值
Math.ceil(19.3)     //向上取整
Math.floor(11.8)    //向下取整
Math.pow(x,y)       //x的y次方
Math.sqrt(num)      //开平方