专栏首页jiajia_dengES6 学习笔记之字符串拓展

ES6 学习笔记之字符串拓展

字符换相关的拓展在书中有非常详细的介绍,我这里仅记录一些可能会用到的函数或方法,以备后用。

正确打印一个字符串序列

var s = 'a';

for (let ch of s) {
  console.log(ch.codePointAt(0).toString(16));
}

以上由于 “ 占用 4 个字符,如果用传统的 charCodeAt 或者 charAt 都无法正常读取,所以需要用到新的方法 codePointAt()

判断一个字符是 4 字节还是 2 字节

function is32Bit(c) {
  return c.codePointAt(0) > 0xFFFF;
}

console.log(is32Bit(''));
console.log(is32Bit('a'));

for..of 遍历字符串

var text = String.fromCodePoint(0x20BB7);

for (let i = 0; i < text.length; i++) {
  // 无法正常打印文字,识别为两个字节,被截断
  console.log(text[i]);
}

for (let ch of text) {
  // 正确打印,能正常识别四个字节的字符
  console.log(ch);
}

子字符串查找函数

var str = "hello world";

console.log(str.includes('ello'));
console.log(str.startsWith('hello'));
console.log(str.endsWith('world'));
  • includes 判断字符串中是否包含某个子字符串。
  • startsWith 判断字符串开头是否包含某子字符串。
  • endWith 判断字符串结尾是否包含某子字符串。

字符串长度填充补全

console.log('0000008E'.padStart(10, '0x'));
console.log('x'.padEnd(10, '0'));

可以让某字符串按规定长度显示,如不够指定长度则用参数 2 补全。

字符串与变量拼接(模板字符串)

ES5 字符串拼接使用加号:

for (var i = 0; i < 100; i++) {
  console.log('活到 ' + i + ' 岁');
}

在 ES6 中则相对简洁化了,将原来的引号换成了反引号,变量用 ${} 括起来,中间不再需要加号。

for (let i = 0; i < 100; i++) {
  console.log(`活到 ${i} 岁`);
}

模板字符串还有非常多的规则,详情请参考书中资料

相关

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • ES6 学习笔记之对象的拓展

    ES6 简洁方法后与一些面向对象的高级语言(如C++)差不多,函数名+参数+花括号。另外注意简洁写法的属性名是按字符串解析的。方法的属性名可以是一些关键字,由于...

    我与梦想有个约会
  • ES6 学习笔记之数组的拓展

    ES6 在数组上改变还是比较多的,主要是为了弥补 ES5 一些方法的不足或新增一些方法,但大体这些方法在其他语言中也都见过,所以操作和使用起来不难,可能名字不一...

    我与梦想有个约会
  • ES6 学习笔记之 map 的多种遍历方法

    Map 是 ES6 中新增的一种数据结构,与 Set 一起添加,其实功能都差不多。我就只列举了 Map 的遍历方式,一通百通,其自身内部带有的的方法看书中介绍即...

    我与梦想有个约会
  • 前端基础-ECMAScript字符串模板(模板字面量)

    ES6中提供了字符串模板语法,允许使用反引号(倒引号) `` 来创建字符串,里面可以包含${变量名}形式的变量占位符。 其中的变量会被解析。

    cwl_java
  • JS面向对象笔记

    0、匿名函数定以后直接调用:(function(numA, numB) { alert(numA + numB); })(3,4);//弹窗7

    tandaxia
  • JS面向对象笔记 转

    0、匿名函数定以后直接调用:(function(numA, numB) { alert(numA + numB); })(3,4);//弹窗7

    双面人
  • ES6之字符串扩展

    ES6对字符串扩展了一些功能,开发过程用到的不多,还有一些是Unicode的,这边就不仔细说那些,简单提一下ES6对字符串扩展了哪些。

    wade
  • JavaScript易错点(长期更新)

    点评: new的时候,如果构造函数的原型是是object类型那么浏览器会添加o1.__proto__ = F.prototype否则会添加o1.__proto_...

    kai666666
  • [android] android项目架构

    陶士涵
  • 深入理解ES6--迭代器、生成器、代理、反射、Promise

    注意:数组和Set集合的默认迭代器是values();Map集合的默认迭代器是entries()

    奋飛

扫码关注云+社区

领取腾讯云代金券