美文网首页
ES6学习笔记之字符串扩展

ES6学习笔记之字符串扩展

作者: markpapa | 来源:发表于2017-09-20 14:18 被阅读0次

1.字符串的遍历器接口

for(let codePoint  of 'foo'){
    console.log(codePoint  );
}
// 'f'
// 'o'
// 'o'

2.includes(), startsWith(), endsWith()

includes():返回布尔值,表示是否找到了参数字符串。
startsWith():返回布尔值,表示参数字符串是否在原字符串的头部。
endsWith():返回布尔值,表示参数字符串是否在原字符串的尾部。

var s = 'Hello world!';
s.startsWith('Hello') // true
s.endsWith('!') // true
s.includes('o') // true

Tips: 这三个方法都支持第二个参数,表示开始搜索的位置。

var s = 'Hello world!';
//针对后n个字符
s.startsWith('world', 6) // true

//针对前n个字符
s.endsWith('Hello', 5) // true

//针对后n个字符
s.includes('Hello', 6) // false

3.repeat()

repeat方法返回一个新字符串,表示将原字符串重复n次。

x.repeat(3);  // 'xxx'
'hello'.repeat(2);  // "hellohello"
'na'.repeat(0) // ""

参数如果是小数,会被取整。

'na'.repeat(2.9) // "nana"

如果repeat的参数是负数或者Infinity,会报错。
如果参数是0到-1之间的小数,则等同于0
参数NaN等同于0。
如果repeat的参数是字符串,则会先转换成数字。

4.padStart(),padEnd()

padStart()用于头部补全,padEnd()用于尾部补全。

'x'.padStart(5, 'ab') // 'ababx'
'x'.padStart(4, 'ab') // 'abax'

'x'.padEnd(5, 'ab') // 'xabab'
'x'.padEnd(4, 'ab') // 'xaba'

Tips:padStart和padEnd一共接受两个参数,第一个参数用来指定字符串的最小长度,第二个参数是用来补全的字符串。

//如果原字符串的长度,等于或大于指定的最小长度,则返回原字符串。
'xxx'.padStart(2, 'ab') // 'xxx'
'xxx'.padEnd(2, 'ab') // 'xxx'  

//如果省略第二个参数,默认使用空格补全长度。
'x'.padStart(4) // '   x'
'x'.padEnd(4) // 'x   '

padStart的常见用途是为数值补全指定位数。下面代码生成10位的数值字符串。

'1'.padStart(10, '0') // "0000000001"
'12'.padStart(10, '0') // "0000000012"
'123456'.padStart(10, '0') // "0000123456"

另一个用途是提示字符串格式。

'12'.padStart(10, 'YYYY-MM-DD') // "YYYY-MM-12"
'09-12'.padStart(10, 'YYYY-MM-DD') // "YYYY-09-12"

5.模板字符串

模板字符串(template string)是增强版的字符串,用反引号(`)标识。它可以当作普通字符串使用,也可以用来定义多行字符串,或者在字符串中嵌入变量。

// 普通字符串
`In JavaScript '\n' is a line-feed.`

// 多行字符串
`In JavaScript this is 
  not legal.`

// 字符串中嵌入变量
//模板字符串中嵌入变量,需要将变量名写在${}之中。
var name = "Bob", time = "today";
`Hello ${name}, how are you ${time}?`

如果使用模板字符串表示多行字符串,所有的空格和缩进都会被保留在输出之中。

$('#list').html(`
   <ul>
      <li>first</li>
      <li>second</li>
    </ul>
   `);

大括号内部可以放入任意的JavaScript表达式,可以进行运算,以及引用对象属性。

 var x = 1;
 var y = 2;

`${x} + ${y} = ${x + y}`
// "1 + 2 = 3"

`${x} + ${y * 2} = ${x + y * 2}`
// "1 + 4 = 5"
 
var obj = {x: 1, y: 2};
`${obj.x + obj.y}`
// "3"

模板字符串之中还能调用函数。

   function fn() {
    return "Hello World";
 }

`foo ${fn()} bar`
// foo Hello World bar

相关文章

  • ES6学习笔记之字符串扩展

    1.字符串的遍历器接口 2.includes(), startsWith(), endsWith() includ...

  • ES6学习笔记

    ES6学习笔记之字符串模板 对运算的支持let a=1;let b=2;let result=${a+b};doc...

  • es6的数值,函数,字符串扩展

    一、es6的数值扩展 二、es6的函数扩展 代码效果:对象解构在函数中的应用 三、es6字符串扩展 常用方法 代码...

  • es6第四章学习

    es6第四章学习 字符串的扩展 1.字符的 Unicode 表示法 ES6 加强了对 Unicode 的支持,允许...

  • string

    es6 字符串的新增属性。学习笔记此博文 字符串的遍历器的接口。 includes(),startsWith(),...

  • 2018-07-24

    日常打卡,今日学习呀学习....怎么说呢,ES6乃至JS,学习之路漫长呀呀呀. 字符串的扩展includes('s...

  • ES6-02 字符串与正则表达式

    ES6学习笔记-字符串与正则表达式 JS字符串编码 在ES6之前,JS的字符串以16位字符编码(UCS-2)为基础...

  • ECMAScript6新方法(2)

    字符串扩展 ES6加强了对Unicode的支持,并且扩展了字符串对象。 获取字符unicode编码 通过unico...

  • ES6扩展归纳

    ES6扩展归纳 介绍ES6相比与ES5在原有对象上的扩展,包括字符串、正则、数值、函数、数组、对象等扩展,本文是阮...

  • 一、JavaScript 笔记之扫盲

    JavaScript 个人零碎笔记,不作为学习JavaScript 教程使用 1.字符串: es6 针对多行字符串...

网友评论

      本文标题:ES6学习笔记之字符串扩展

      本文链接:https://www.haomeiwen.com/subject/qrnnsxtx.html