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

Stella981
• 阅读 696

Unicode字符的新表示方法

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

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

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

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

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

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

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

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

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

 let multiLine = `
    This is
    a string
    with multiple
    lines`;

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

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

循环遍历字符串

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

    for (let ch of 'abc') {
        console.log(ch);
    }
    // Output:
    // a
    // b
    // c

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

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

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

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

> 'hello'.startsWith('hell')
true
> 'hello'.endsWith('ello')
true
> 'hello'.includes('ell')
true

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

> 'hello'.startsWith('ello', 1)
true
> 'hello'.endsWith('hell', 4)
true
    
> 'hello'.includes('ell', 1)
true
> 'hello'.includes('ell', 2)
false

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

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

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

点赞
收藏
评论区
推荐文章
Karen110 Karen110
3年前
一篇文章带你了解JavaScript日期
日期对象允许您使用日期(年、月、日、小时、分钟、秒和毫秒)。一、JavaScript的日期格式一个JavaScript日期可以写为一个字符串:ThuFeb02201909:59:51GMT0800(中国标准时间)或者是一个数字:1486000791164写数字的日期,指定的毫秒数自1970年1月1日00:00:00到现在。1\.显示日期使用
秋刀鱼 秋刀鱼
2年前
Java字符串:内存分析/方法梳理
近期在学习Java字符串,梳理总结一下,更多是关于内存角度去分析,希望对你有帮助。一、Java字符串的特性1.java.lang.String使用的final修饰,不能被修饰2.字符串底层封装了字符数组以及针对字符串数组的操作算法3.Java使用的是Unicode编码方式,任何一个字符对应两个字节的编码4.字符串一旦创建,对象内容不能改变,
Wesley13 Wesley13
3年前
java将前端的json数组字符串转换为列表
记录下在前端通过ajax提交了一个json数组的字符串,在后端如何转换为列表。前端数据转化与请求varcontracts{id:'1',name:'yanggb合同1'},{id:'2',name:'yanggb合同2'},{id:'3',name:'yang
待兔 待兔
4个月前
手写Java HashMap源码
HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22
Peter20 Peter20
3年前
mysql中like用法
like的通配符有两种%(百分号):代表零个、一个或者多个字符。\(下划线):代表一个数字或者字符。1\.name以"李"开头wherenamelike'李%'2\.name中包含"云",“云”可以在任何位置wherenamelike'%云%'3\.第二个和第三个字符是0的值wheresalarylike'\00%'4\
Wesley13 Wesley13
3年前
ES6中对字符串处理的优点
\toc\1、字符的Unicode表示法ES6之前Unicode只能表示\\u0000\\uFFFF之间的字符。ES6可以表示超过这个范围的unicode字符如//原来ES6之前"\uD842\uDFB7"//"𠮷""\u20BB7"//"7"
Stella981 Stella981
3年前
JS 苹果手机日期显示NaN问题
问题描述newDate("2019122910:30:00")在IOS下显示为NaN原因分析带的日期IOS下存在兼容问题解决方法字符串替换letdateStr"2019122910:30:00";datedateStr.repl
Stella981 Stella981
3年前
Lua学习笔记_String(一)
   Lua中的字符串可以包含一个字母也可以是一整本书。用一个字符串表示100K甚至1M的内容在Lua中并不罕见。     在Lua中,字符串是字节的序列。Lua内核中不关心这些字节是什么编码格式。Lua只是单纯地以8bit为单位保存它们,且每个字节可以是任意数字,包括0。这就意味着我们可以用字符串保存任意二进制数据。也可以将Unicode字符串保存为任
Wesley13 Wesley13
3年前
JS转码与解码
escape和unescapeescape()不能直接用于URL编码,它的真正作用是返回一个字符的Unicode编码值。采用unicode字符集对指定的字符串除0255以外进行编码。所有的空格符、标点符号、特殊字符以及更多有联系非ASCII字符都将被转化成%xx格式的字符编码(xx等于该字符在字符集表
Wesley13 Wesley13
3年前
VC++中关于TCHAR,WCHAR,LPSTR,LPWSTR,LPCTSTR的解释
一般来说,一个字符(character)占用1字节或是2字节,我们说1字节的字符是ANSI,他可以用来表示英语字母,而2字节的我们称之为Unicode,可以表示世界上所有的语言。。VC使用char和wchar\_t的内置数据类型来分别作为表示ANSI和Unicode字符。如果你想让你的C/C程序是字符集无关的,该怎么做呢?如果你用通