[ES6] 细化ES6之 -- 字符串的扩展

判断是否包含

都区分大小写

 

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.

所谓的原始字符串是模版字符串被定义时的内容,而不是处理之后的内容

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值