字符串的扩展

概述

ES6增加了对字符串的扩展。

1.字符串的遍历器接口

ES6为字符串添加了遍历器接口,使得字符串可以被for...of循环遍历。

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

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

var s = ‘Hello world!‘;

s.startsWith(‘world‘, 6) // true
s.endsWith(‘Hello‘, 5) // true
s.includes(‘Hello‘, 6) // false

使用第二个参数n时,endsWith的行为与其他两个方法有所不同。它针对前n个字符,而其他两个方法针对从第n个位置直到字符串结束。

3.repeat()

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

参数如果是小数,会被取整。
‘na‘.repeat(2.9) // "nana"

如果repeat的参数是负数或者Infinity,会报错。
‘na‘.repeat(Infinity)
// RangeError
‘na‘.repeat(-1)
// RangeError

如果参数是0到-1之间的小数,则等同于0,这是因为会先进行取整运算。0到-1之间的小数,取整以后等于-0,repeat视同为0。
‘na‘.repeat(-0.9) // ""

参数NaN等同于0
‘na‘.repeat(NaN) // ""

如果repeat的参数是字符串,则会先转换成数字。
‘na‘.repeat(‘na‘) // ""
‘na‘.repeat(‘3‘) // "nanana".

4.padStart(),padEnd()

ES2017 引入了字符串补全长度的功能。如果某个字符串不够指定长度,会在头部或尾部补全。padStart()用于头部补全,padEnd()用于尾部补全。

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

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

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

‘xxx‘.padStart(2, ‘ab‘) // ‘xxx‘
‘xxx‘.padEnd(2, ‘ab‘) // ‘xxx‘

//如果用来补全的字符串与原字符串,两者的长度之和超过了指定的最小长度,则会截去超出位数的补全字符串。

‘abc‘.padStart(10, ‘0123456789‘)
// ‘0123456abc‘

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

5.模板字符串

ES6中引入了模板字符串(Template Literal),是创建字符串的一种新方法。有了这个新特性,我们就能更好地控制动态字符串。这将告别长串连接字符串的日子。

1.多行字符串

let myStr = `hello
world`;
console.log(myStr)   //hello
                     //world

2.表达式

let nameVal = ‘xiaoli‘;
let str = `my name is ${nameVal}`
console.log(str)   //my name is xiaoli

相关链接

1.ES6简介

2.let和const命令

3.变量的解构赋值

参考资料

1.阮一峰的《ES6入门》

时间: 2024-10-21 07:01:08

字符串的扩展的相关文章

《ECMAScript 6 入门- 第三章 字符串的扩展》 —— 摘抄

1. codePointAT方法 JavaScript内部,字符以UTF-16的格式储存,每个字符固定为2个字节.对于那些需要 4个字节储存的字符(Unicode编号大于0xFFFF的字符),JavaScript会认为它们是两个字符.ES6提供了codePointAt方 法,能够正确处理4个字节储存的字符,返回一个字符的Unicode编号. codePointAt方法是测试一个字符由两个字节还是由四个字节组成的最简单方法. function is32Bit(c) { return c.codeP

ES6小实验-字符串的扩展

ES6里面的对字符串的扩展实际上就是增加了一些方法,使对字符串的操作更加完善,下面做几个小实验来验证下: includes(): 返回布尔值,表示是否找到了参数字符串,支持第二的参数,表示开始的位置 'use strict'; var s = 'Hello world!'; console.log(s.includes('Hello'));//true startsWith(): 返回布尔值,表示参数字符串是否在源字符串的头部,支持第二的参数,表示开始的位置 'use strict'; var

字符串转数字扩展方法、字符串处理扩展方法

写代码时喜欢连贯的.链式的写下去,而不是光标再返回到前面写类型转换等等. 自定义了些字符串扩展方法: 1 /// <summary> 2 /// 字符串操作扩展方法类 3 /// </summary> 4 public static class StringOperationExtensions 5 { 6 /// <summary> 7 /// 若输入字符串为null,则返回String.Empty. 8 /// </summary> 9 /// <

3.字符串的扩展

字符串的扩展 字符串的扩展 ES6 加强了对 Unicode 的支持,并且扩展了字符串对象. 字符的 Unicode 表示法 JavaScript 允许采用\uxxxx形式表示一个字符,其中xxxx表示字符的 Unicode 码点. "\u0061" // "a" 但是,这种表示法只限于码点在\u0000~\uFFFF之间的字符.超出这个范围的字符,必须用两个双字节的形式表示. "\uD842\uDFB7" // "??" &

ES6的新特性(4)——字符串的扩展

字符串的扩展 ES6 加强了对 Unicode 的支持,并且扩展了字符串对象. 字符的 Unicode 表示法 JavaScript 允许采用\uxxxx形式表示一个字在\u0000~\uFFFF之间的字符,其中xxxx表示字符的 Unicode 码点. "\u0061" // "a" 超出\u0000~\uFFFF范围的字符,必须用两个双字节的形式表示. "\uD842\uDFB7" // "??" // 也可以用花括号括起

ES6字符串相关扩展

变量的解构赋值 // 数组的解构赋值 let [a,b,c] = [1,2,3]; //1,2,3 let [a,b,c] = [,123,]; //undefined 123 undefined let [a=111,b,c] = [,123,]; //111 123 undefined console.log(a,b,c); 对象的解构赋值 let {foo,bar} = {foo : 'hello',bar : 'hi'};//hello hi let {foo,bar} = {bar :

用Python遍历(Linux)的子目录并且查找出指定的字符串带(扩展名)黑白名单功能

<软件&网站架构师手记>之一_用Python脚本补充Linux命令的不完善之二: 用Python脚本遍历(Linux)的子目录(或文件夹)并且查找出指定的字符串,并且显示: 1.目录位置: 2.(字符串)所在的文件名: 3.字符串所在(文件中)的行号; 4.以及显示本行信息,既显示本行的(从本行开始)的256个字符. #并且支持把扩展名放进脚本中 用数组存放的黑.白(扩展名)名单中: 既先在"白扩展名"类型的文件当中:检索,如*.txt, *.log, *.cnf,

复习es6-解构赋值+字符串的扩展

1. 数组的解构赋值 从数组中获得变量的值,给对应的声明变量赋值,,有次序和对应位置赋值 解构赋值的时候右边必须可以遍历 解构赋值可以使用默认值 惰性求值,当赋值时候为undefined时候,默认是个函数就会执行函数 2.对象解构赋值 与数组不同的是,对象没有按次序排序 对象按照属性名赋值 3.字符串扩展 字符串使用unicode表示法 es6给字符串加上了遍历器借口,可用( for  of ) 遍历 字符串模板 1.用反引号(')设置字符串 2.${param} 来显示变量 3.<%   %>

ES6走一波 字符串的扩展

ES6字符串扩展: 处理大码点字符 字符的Unicode表示法 \uxxxx表示一个字符串,超出 \u0000 ~ \uffff范围,必须用两个双字节形式表示. ES6改进为 将码点放到大括号 可正确解读 codePointAt() JS字符以 UTF-16 格式存储,每个字符固定为2个字节.需要4个字节的字符,js认为它们是两个字符. codePointAt可正确处理 4 字节存储的字符 由4字节和2字节组成的字符串中 通过for ... of 循环可在第二次拿到2字节字符 codePoint