字符串的概念
字符串就是一串字符,由双(单)引号括起来。
字符串是 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) //开平方