字符串的扩展

  在看这一节的时候前半部分写的都是关于unicode的内容,我个人感觉这部分在实际的开发中用的很少,所以不打算在做记录,等届时用到再有针对性的看,所以就将在ES6里面关于字符串操作的一些新的方法举一些例子看下;

  一、操作方法:

    1.传统上关于字符串的查找只有indexof()这一个方法;在ES6里面新增:

      

includes():返回布尔值,表示是否找到了参数字符串。
startsWith():返回布尔值,表示参数字符串是否在原字符串的头部。
endsWith():返回布尔值,表示参数字符串是否在原字符串的尾部。
let s = 'Hello world!';
s.startsWith('Hello') // true
s.endsWith('!') // true
s.includes('o') // true
在这三个方法里面允许传入第二个参数:
let s = 'Hello world!';
s.startsWith('world', 6) // true 代表从index为6一直到字符串结束的部分;
s.endsWith('Hello', 5) // true 代表从开始到index为5的部分;
s.includes('Hello', 6) // false 代表从index为6一直到字符串结束的部分;

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

 

'hello'.repeat(2);结果:'hellohello';
'hello'.repeat(0);结果:' ';传入0;意味重复0次;
'hello'.repeat(2.9);结果:'hellohello';会被向下取整;
'hello'.repeat(Infinity)或者'hello'.repeat(负数);结果报错;
'hello'.repeat(a) -1<a<0 // "此时a会被当做0处理";
'hello'.repeat(NaN);结果:' ';当做0处理;
'hello'.repeat('3');传入字符串的时候会先将字符串转化为数字;

    3.padStart()头部补全,padEnd()尾部补全;

'x'.padStart(5, 'ab') // 'ababx'
'x'.padStart(4, 'ab') // 'abax' 'x'.padEnd(5, 'ab') // 'xabab'
'x'.padEnd(4, 'ab') // 'xaba' 以上两个方法均接收两个参数,第一个参数将原始字符串用第二个字符串补全长度至第一个参数;
如果第二个参数省略,那将会用空格补全;

    4.模板字符串

原先jquery写法:
$(div).append('你的好友<b>'+username+'</b>向你发送了<span>'+money+'</span>元的红包');
模板字符串写法:
$(div).append(`你的好友<b>${username}</b>向你发送了<span>${money}</span>元红包`);
在模板字符串内可以解析变量;
// 字符串中嵌入变量
let name = "Bob", time = "today";
`Hello ${name}, how are you ${time}?`
如果在一个字符串中需要使用` 这个字符的话,需要用\进行转译;console.log(\`我\`);结果: `我`;
另外模板字符串表示多行字符串,所有的空格和缩进都会被保留在输出之中。 此外模板字符串还可以调用函数;
function fn() {
return "嘟嘟嘟";
} `foo ${fn()} bar` // foo Hello 嘟嘟嘟 bar
如果{a};a没有被定义将会报错;如果a是对象将会先将a执行toString();
模板字符串还可以嵌套使用:
const tmpl = addrs => `
<table>
${addrs.map(addr => `
<tr><td>${addr.first}</td></tr>
<tr><td>${addr.last}</td></tr>
`).join('')}
</table>
`;

ES6学习历程(字符串的扩展)的更多相关文章

  1. JavaScript学习笔记--ES6学习(四) 字符串的扩展

    ES6对字符串进行了一些扩展,主要表现在对Unicode 大于\uFFFF的字符的处理上. 1. ES6中字符的Unicode表示方法 在ES5中,字符串的Unicode表示方法: \uxxxx . ...

  2. ES6学习5 字符串的扩展

    1.ES6 为字符串添加了遍历器接口,使得字符串可以被for...of循环遍历. for (let codePoint of 'foo') { console.log(codePoint) } // ...

  3. ES6学习之字符串的扩展

    字符的Unicode表示法 \uxxxx可以表示一个双字节的字符(xxxx表示字符编码,范围在0000---FFFF),超出此范围用两个双字节表示. console.log("\u0061& ...

  4. es6学习笔记--字符串&数值&数组&函数&对象的扩展

    这几天抽空学习了es6语法,关于字符串,数值,数组,函数以及对象的扩展,看到es6标准入门这本书,里面讲的扩展特别多,我认为有几部分在项目上用不到,就挑有用的当笔记学习了. 字符串的扩展 str.in ...

  5. ES6学习笔记(字符串和数值)

    (一)字符串的扩展 1.字符串的遍历 for (let codePoint of 'foo') { console.log(codePoint) } // "f" // " ...

  6. JavaScript学习笔记--ES6学习(五) 数值的扩展

    ES6 对于数值类型 (Number) 进行了一下扩展: 1.对于二进制和八进制提供了新的写法 ES6对于二进制和八进制的数值提供了新的写法,分别用0b (或者0B) 和0o (或者0o) 表示.例如 ...

  7. ES6(四)字符串的扩展

    1.字符的表示方式 最早在  \u0000-\uFFFF 之间的字符已经足够使用吗,每个字符占两个字节,超出范围,必须使用双字节形式表达, 即每个字符占四个字节.超出范围的字符,会被解读成  \uXX ...

  8. ES6学习随笔--字符串模板、解构赋值、对象、循环、函数、Promise、Generrator

    在线编译器:babel.github 在nongjs中使用 'use strict' let a = ; 运行node : node --harmony_destructuring xxx.js 代码 ...

  9. ES6标准入门 字符串的扩展

    1:模板字符串与模板引擎 https://blog.csdn.net/crper/article/details/52940625 es6模板字符串中标签模板作为参数时产生空元素的问题 https:/ ...

随机推荐

  1. 【转】linux 远程桌面工具NX

    1.在linux服务器上需要安装3个文件,下载地址为: http://www.nomachine.com/download-package.php?Prod_Id=1977 nxclient-3.4. ...

  2. 虚拟机ODPS初体验

    大数据竞赛的第二阶段须要通过远程桌面的方式连接阿里提供的虚拟机, 全部操作都是在远程主机上进行. 在搞清楚文件回传方式之前真是各种麻烦(写博客都没有办法贴代码). 用了两个上午初步上手, 希望接下来进 ...

  3. XAML实例教程系列 - 命名空间(NameSpace) 三

    XAML实例教程系列 - 命名空间(NameSpace) 2012-05-28 14:14 by jv9, 2205 阅读, 10 评论, 收藏, 编辑 上一篇曾提及XAML中,每个对象元素的声明是对 ...

  4. codeforces 949B A Leapfrog in the Array

    B. A Leapfrog in the Array time limit per test 2 seconds memory limit per test 512 megabytes input s ...

  5. 收集主机OS相关数据

    #!/usr/bin/ksh touch hostinfo$(date +%Y%m%d).csv filename=hostinfo$(date +%Y%m%d).csv >${filename ...

  6. Gym - 101208C 2013 ACM-ICPC World Finals C.Surely You Congest 最大流+最短路

    题面 题意:给你n(2w5)个点,m条边(7w5)有k(1e3)辆车停在某些点上的,然后他们都想尽快去1号点,同时出发,同一个点不允许同时经过, 如果多辆车同时到达一个点,他们就会堵塞,这时候只能选择 ...

  7. [App Store Connect帮助]三、管理 App 和版本(2.2)输入 App 信息:设置 App 分级

    您必须设置 App 分级,这是一项平台版本信息属性,用于在 App Store 上实施家长控制.App Store Connect 提供了一份内容描述列表,通过该列表,您可以确定相应内容在您 App ...

  8. Android框架式编程之Room

    Room是Google官方出品的ORM(Object-relational mapping) 框架.当前我们也知道当前还有很多的ORM框架,例如GreenDao.OrmLite.Litepal等.目前 ...

  9. 悼念512汶川大地震遇难同胞——老人是真饿了 hdu 2187

    在此对 曾经 努力参加 救援的人 致以深深的敬意 . 这一道题 挺简单的 就是简单的  结构体+贪心 而已 不过 用英文 注释  是一个 很大的 进步 ,  以后 要习惯 http://acm.hdu ...

  10. 如何获取select控件的option值和Value?

    案例: <select id="paId" class="text3">                    <option value=& ...