判断是否包含
都区分大小写
includes()方法
返回布尔值,表示是否找到了参数字符串
let str = 'hebei baodingshi lianchiqu'
console.log(str.includes('o'));// true
console.log(str.includes('o', 7));// true
console.log(str.includes('o', 8));// false
// includes()方法是区别大小写
console.log(str.includes('O'));// false
startsWith()方法
返回布尔值,表示参数字符串是否在原字符串的头部
let str = 'hebei baodingshi lianchiqu'
console.log(str.startsWith('hebei'));// true
/*
startswidth()方法不是表示指定字符串是以另一个字符串开始的
*表示指定字符串的指定索引值开始是否以另一个字符串开始的
*/
console.log(str.startsWith('baodingshi',6));// true
endsWith()方法
返回布尔值,表示参数字符串是否在原字符串的尾部
let str = 'hebei baodingshi lianchiqu'
console.log(str.endsWith("hebei", 5));// true
重复字符串
repeat()方法
用于将原字符串重复次,返回一个新字符串。
- number为小数,向下取整的
let str = 'abc';
console.log(str.repeat(2.5));//abcabc
- number为NaN,不报错
let str = 'abc';
console.log(str.repeat(NaN));// 没有任何输出
- number为负数,报错
let str = 'abc';
console.log(str.repeat(-2));// Invalid count value
console.log(str.repeat(Infinity));
- number为0,不报错
let str = 'abc';
console.log(str.repeat(0));// 没有任何输出
- number为字符串,先转换成数字值
let str = 'abc';
console.log(str.repeat('3'));//abcabcabc
console.log(str.repeat(true));
模板字符串
模板字符串是什么
模板字符串(template string)是增强版的字符串,用反引号(`)标识。它可以当作普通字符串使用,也可以用来定义多行字符串,或者在字符串中嵌入变量
多行模板字符串
- ES5
- 字符串如果需要输出多行的话,需要使用字符串的拼接实现。
- ES6
- 字符串如果需要输出多行的话,只需要使用模板字符串即可。
//定义一个普通字符串
let str3 = 'this is\nstring' ;
console.log(str3);
/*
this is
string
*/
let str4 = 'this is'
+'string'
console.log(str4);//this isstring
// 定义一个模版字符串 - 充当多行普通字符串来使用
let str5 = `this is
string`;
console.log(str5);
/*
this is
string
*/
let name ='张无忌';
//定义一个普通字符升
let str6 = 'hello ' + name + '!';
console.log(str6);//hello 张无忌!
// 定义一个模版字符串
let str7 = `hello ${name} !`;
console.log(str7);//hello 张无忌 !
带表达式的模板字符串
在普通字符串中嵌入表达式,需要通字符串的过拼接操作来实现。
通过模板字符串,嵌入变量需要将变量名写在$之中。
带标签的模板字符串
模板字符串的功能可以紧跟在一个函数名后面,该函数将被调用来处理这个模板字符串。
let str = 'console';
// 普通字符串
console.log('this is ' +str+ '.');// this is console.
// 模版字符串
console.log(`this is ${str}.`);// this is console.
// 带标签的模板字符串 - 用于处理模版字符串的方法(输出到控制台)
console.log`this is ${str}.`;// [ 'this is ', '.' ] console
标签模板其实不是模板,而是函数调用的一种特殊形式。“标签”指的就是函数,紧跟在后面的模板字符串就是它的参数。
原始字符串
在标签函数的第一个参数中,存在一个特殊的属性raw
,可以通过它来访问模板字符串的原始字符串,而不经过特殊字符的替换。
let str = 'function'
function fn(arg) {
console.log(arg.raw[0]);// [ 'this is function' ]
console.log(arg.raw)// [ 'this is function' ]
}
fn`this is function`
console.log(String .raw`this is ${str}.`);// this is function.
所谓的原始字符串是模版字符串被定义时的内容,而不是处理之后的内容