JavaScript 6 里关于字符串的几个新用法

Unicode字符的新表示方法

Unicode字符通常是21个bit的,而普通的JavaScript字符(大部分)是16bit的,可以编码成UTF-16。超过16bit的字符需要用2个常规字符表示。比如,比如下面的的代码将会输出一个Unicode小火箭字符(‘\uD83D\uDE80’),你可以在浏览器的console里试一下:

console.log('\uD83D\uDE80');

在 ECMAScript 6 里,可以使用新的表示方法,更简洁:

 console.log('\u{1F680}');

多行字符串定义和模板字符串

模板字符串提供了三个有用的语法功能。

首先,模板字符串支持嵌入字符串变量:

1 let first = 'Jane'; 2 let last = 'Doe'; 3 console.log(`Hello ${first} ${last}!`); 4 // Hello Jane Doe!

第二,模板字符串支持直接定义多行字符串:

1 let multiLine = ` 2 This is 3 a string 4 with multiple 5 lines`;

第三,如果你把字符串加上String.raw前缀,字符串将会保持原始状况。反斜线(\)将不表示转义,其它专业字符,比如 \n 也不会被转义:

1let raw = String.raw`Not a newline: \n`; 2 console.log(raw === 'Not a newline: \\n'); // true

循环遍历字符串

字符串可遍历循环,你可以使用 for-of 循环字符串里的每个字符:

1 for (let ch of 'abc') { 2 console.log(ch); 3 } 4 // Output: 5 // a 6 // b 7 // c

而且,你可以使用拆分符 (...) 将字符串拆分成字符数组:    

1 let chars = [...'abc']; 2 // ['a', 'b', 'c']

字符串包含判断和重复复制字符串

有三个新的方法能检查一个字符串是否包含另外一个字符串:

1> 'hello'.startsWith('hell') 2true 3> 'hello'.endsWith('ello') 4true 5> 'hello'.includes('ell') 6true

这些方法有一个可选的第二个参数,指出搜索的起始位置:

1> 'hello'.startsWith('ello', 1) 2true 3> 'hello'.endsWith('hell', 4) 4true 5 6> 'hello'.includes('ell', 1) 7true 8> 'hello'.includes('ell', 2) 9false

repeat()方法能重复复制字符串:

1> 'doo '.repeat(3) 2 'doo doo doo '

点赞
收藏

评论区

加载中...

相关推荐

手写Java HashMap源码

HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22

一篇文章带你了解JavaScript日期

日期对象允许您使用日期(年、月、日、小时、分钟、秒和毫秒)。一、JavaScript的日期格式一个JavaScript日期可以写为一个字符串:ThuFeb02201909:59:51GMT0800(中国标准时间)或者是一个数字:1486000791164写数字的日期,指定的毫秒数自1970年1月1日00:00:00到现在。1\.显示日期使用

java将前端的json数组字符串转换为列表

记录下在前端通过ajax提交了一个json数组的字符串,在后端如何转换为列表。前端数据转化与请求varcontracts{id:'1',name:'yanggb合同1'},{id:'2',name:'yanggb合同2'},{id:'3',name:'yang

Java字符串:内存分析/方法梳理

近期在学习Java字符串,梳理总结一下,更多是关于内存角度去分析,希望对你有帮助。一、Java字符串的特性1.java.lang.String使用的final修饰,不能被修饰2.字符串底层封装了字符数组以及针对字符串数组的操作算法3.Java使用的是Unicode编码方式,任何一个字符对应两个字节的编码4.字符串一旦创建,对象内容不能改变,

mysql中like用法

like的通配符有两种%(百分号):代表零个、一个或者多个字符。\(下划线):代表一个数字或者字符。1\.name以"李"开头wherenamelike'李%'2\.name中包含"云",“云”可以在任何位置wherenamelike'%云%'3\.第二个和第三个字符是0的值wheresalarylike'\00%'4\

ES6中对字符串处理的优点

\toc\1、字符的Unicode表示法ES6之前Unicode只能表示\\u0000\\uFFFF之间的字符。ES6可以表示超过这个范围的unicode字符如//原来ES6之前"\uD842\uDFB7"//"𠮷""\u20BB7"//"7"