热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

es6字符串的扩大

es6字符串添加了许多新功用,固然也有许多关于字符串编码的一些学习惯东西,在这里我们就不多做引见,引见一下经常运用的一些要领字符串的遍历接口es6中字符串扩大了遍历器接口for(l

es6字符串添加了许多新功用,固然也有许多关于字符串编码的一些学习惯东西,在这里我们就不多做引见,

引见一下经常运用的一些要领

字符串的遍历接口

es6中字符串扩大了遍历器接口
for(let i of 'abcdef'){
console.log(i) // a,b,c,d,e,f
}
实在看起来和其他的遍历长的挺像的,那我们来看看它是不是除了能遍历字符串以外,还可否遍历别的范例呢
那我们来试一下数组范例,会像我们料想的那样会获得遍历的值
for(let i of [1,2,3]){
console.log(i) // 1,2,3
}
看一下对象的范例的遍历
for(let i of {a:1,b:2}){
console.log(i) // 报错
}

上面遍历对象是会报错的,由于for of 是不能直接罗列一般对象的,除非这个对象有Iterator接口才运用,Iterator接口在这里就不多说了,今后的文章会对它举行解说的

for of 轮回遍历器还能够合营break(直接跳出) continue(跳出继承实行) return (在函数内运用)合营运用跳出轮回
for (let a of '123456') {
if (a ==='1') {
break
}
console.log(a) // 1
}

有时间的话人人无妨能够试一下

字符串includes(),startsWith(),endsWith()要领


es5中供应了indexOf要领来肯定查找的字符串是不是在个中,如今又多了三个,是不是是很高兴!!!

  1. includes要领返回布尔值,是不是在字符串个中

    let str = 'this is es6'
    str.includes('es6')// true
    这个要领还支撑第二个参数,那就是挑选位置搜刮,从0最先算,空格也会算位置,是从当前位置今后搜刮,也算当前的位置
    let str = 'this is es6'
    str.includes('i', 5) // true
    搜刮多个也是能够的,固然假如位置凌驾es6的实在位置会查找不到
    str.includes('es6', 5) // true

  2. startsWith要领返回布尔值,是不是在字符串的头部

    let str = 'is heard'
    str.startsWith('is') // true
    str.startsWith('i') // true
    str.startsWith('is heard') // true
    str.startsWith('h') // false
    上边的第三个为何也算头部,在我看来由于把is heaed 看做了团体所以都算头部,而末了一个false是由于在is heard查找h所以h不算是头部
    这个要领也是有第二个参数的
    str.startsWith('i', 0) // true
    str.startsWith('is', 0) // true
    str.startsWith('is', 1) // false

  3. endsWith要领返回布尔值,是不是在字符串的尾部

    let str = 'is last'
    str.endsWith('t') //true
    str.endsWith('st') //true,
    str.endsWith('s') //false

    实在这个和上边的要领startsWith差不多少只不过这个是查找的尾部,谁人是查找的头部

repeat 反复返回一个新的字符串,反复多少次取决于你的参数

参数是 0 到-1 之间的小数,则等同于 0,-0也算0
abc.repeat(3)// abcabcabc
由于不能小于-1,才会报错
'abc154789'.repeat(-1) //报错
大于-1的话会被取整为0,所以会是空的字符串
'abc154789'.repeat(-0.9999999999) //“”
NaN也会被当做为0处置惩罚
'NaN'.repeat(NaN) // ""
参数也能够为字符串,然则也是空由于下面的字符串会被转为NaN
'hhh'.repeat('cc') // ''

padStart(),padEnd()Es7的字符串自动补全功用

padStart 我们来先说一下头部补全
'aa'.padStart(5, 'xc') // xcxaa
'啊!'.padStart(4, '你好') // "你好啊!"
'悦目'.padStart(4, '你长得真') // "你长悦目"
'悦目'.padStart(4) // " 看"
上面的例子是第一个参数是5,示意要5个字符,第二个参数是补全的参数,从头部补全xcx,’aa‘是不会变的,固然倒数第二个第一个参数也算限定了笔墨,所以会从左到右拔取盈余的长度,末了一个的话没有第二个参数会按四个空格
我们来看看从背面补全,实在机制和从头部补全差不多,看一下例子
'aa'.padEnd(5, 'xc') // aaxcx
'啊!'.padEnd(4, '你好') // "啊!你好"

模板字符串

我们先来看一下什么是字符串模板,注重不要用单双引号,要用··,对就是谁人

  1. 一般的字符串模板
    ·this is 啊啊啊啊·
  2. 多行文本的字符串模板
    ·哈哈哈,你好啊
    我是哈哈·
  3. 变量的模板字符串
    let a = ‘你好’
    ${a}啊 // 你好啊

    let str = ‘this is’
    ${str}模板 // this is 模板

  4. 还能够运用函数,然则得把你须要的return出来
    function add () {

    return 123

    }
    ${add()}456 // 123456

  5. 模板编译
    let a = `

      <% for(let i=0; i <3; i++) { %>

    • <%= i %>

    • <% } %>

    `

    上面会被输出为

    • 0

    • 1

    • 2

    我们再来看看下面这个,你们猜函数会实行吗
    let html = `

    5

    4


    3


    2


    `
    function add() {

    alert(123)

    }

String.raw字符串的模板

let s1 = 'qwe', s2 = '123'
String.raw`${ s1 + s2 }` // qwe123
下面这类是左侧的参数会被分为['h','e','l','l','o'],然后就是左侧一个参数逗号右侧一个最先补
String.raw({raw: 'hello'}, 123)// h123ello
第二个参数为对象的话是不会被剖析的哦
String.raw({ raw: 'hello' }, {aa: 'ooo'});"h[object Object]ello"

推荐阅读
  • C++字符字符串处理及字符集编码方案
    本文介绍了C++中字符字符串处理的问题,并详细解释了字符集编码方案,包括UNICODE、Windows apps采用的UTF-16编码、ASCII、SBCS和DBCS编码方案。同时说明了ANSI C标准和Windows中的字符/字符串数据类型实现。文章还提到了在编译时需要定义UNICODE宏以支持unicode编码,否则将使用windows code page编译。最后,给出了相关的头文件和数据类型定义。 ... [详细]
  • 本文介绍了使用哈夫曼树实现文件压缩和解压的方法。首先对数据结构课程设计中的代码进行了分析,包括使用时间调用、常量定义和统计文件中各个字符时相关的结构体。然后讨论了哈夫曼树的实现原理和算法。最后介绍了文件压缩和解压的具体步骤,包括字符统计、构建哈夫曼树、生成编码表、编码和解码过程。通过实例演示了文件压缩和解压的效果。本文的内容对于理解哈夫曼树的实现原理和应用具有一定的参考价值。 ... [详细]
  • 原文地址:https:www.cnblogs.combaoyipSpringBoot_YML.html1.在springboot中,有两种配置文件,一种 ... [详细]
  • C语言注释工具及快捷键,删除C语言注释工具的实现思路
    本文介绍了C语言中注释的两种方式以及注释的作用,提供了删除C语言注释的工具实现思路,并分享了C语言中注释的快捷键操作方法。 ... [详细]
  • 本文介绍了作者在开发过程中遇到的问题,即播放框架内容安全策略设置不起作用的错误。作者通过使用编译时依赖注入的方式解决了这个问题,并分享了解决方案。文章详细描述了问题的出现情况、错误输出内容以及解决方案的具体步骤。如果你也遇到了类似的问题,本文可能对你有一定的参考价值。 ... [详细]
  • CF:3D City Model(小思维)问题解析和代码实现
    本文通过解析CF:3D City Model问题,介绍了问题的背景和要求,并给出了相应的代码实现。该问题涉及到在一个矩形的网格上建造城市的情景,每个网格单元可以作为建筑的基础,建筑由多个立方体叠加而成。文章详细讲解了问题的解决思路,并给出了相应的代码实现供读者参考。 ... [详细]
  • 从零学Java(10)之方法详解,喷打野你真的没我6!
    本文介绍了从零学Java系列中的第10篇文章,详解了Java中的方法。同时讨论了打野过程中喷打野的影响,以及金色打野刀对经济的增加和线上队友经济的影响。指出喷打野会导致线上经济的消减和影响队伍的团结。 ... [详细]
  • 利用Visual Basic开发SAP接口程序初探的方法与原理
    本文介绍了利用Visual Basic开发SAP接口程序的方法与原理,以及SAP R/3系统的特点和二次开发平台ABAP的使用。通过程序接口自动读取SAP R/3的数据表或视图,在外部进行处理和利用水晶报表等工具生成符合中国人习惯的报表样式。具体介绍了RFC调用的原理和模型,并强调本文主要不讨论SAP R/3函数的开发,而是针对使用SAP的公司的非ABAP开发人员提供了初步的接口程序开发指导。 ... [详细]
  • Android源码深入理解JNI技术的概述和应用
    本文介绍了Android源码中的JNI技术,包括概述和应用。JNI是Java Native Interface的缩写,是一种技术,可以实现Java程序调用Native语言写的函数,以及Native程序调用Java层的函数。在Android平台上,JNI充当了连接Java世界和Native世界的桥梁。本文通过分析Android源码中的相关文件和位置,深入探讨了JNI技术在Android开发中的重要性和应用场景。 ... [详细]
  • 本文介绍了在使用vue和webpack进行异步组件按需加载时可能出现的报错问题,并提供了解决方法。同时还解答了关于局部注册组件和v-if指令的相关问题。 ... [详细]
  • 本文介绍了深入浅出Linux设备驱动编程的重要性,以及两种加载和删除Linux内核模块的方法。通过一个内核模块的例子,展示了模块的编译和加载过程,并讨论了模块对内核大小的控制。深入理解Linux设备驱动编程对于开发者来说非常重要。 ... [详细]
  • 本文介绍了在wepy中运用小顺序页面受权的计划,包含了用户点击作废后的从新受权计划。 ... [详细]
  • 模板引擎StringTemplate的使用方法和特点
    本文介绍了模板引擎StringTemplate的使用方法和特点,包括强制Model和View的分离、Lazy-Evaluation、Recursive enable等。同时,还介绍了StringTemplate语法中的属性和普通字符的使用方法,并提供了向模板填充属性的示例代码。 ... [详细]
  • 本文讨论了编写可保护的代码的重要性,包括提高代码的可读性、可调试性和直观性。同时介绍了优化代码的方法,如代码格式化、解释函数和提炼函数等。还提到了一些常见的坏代码味道,如不规范的命名、重复代码、过长的函数和参数列表等。最后,介绍了如何处理数据泥团和进行函数重构,以提高代码质量和可维护性。 ... [详细]
  • 本文介绍了一个React Native新手在尝试将数据发布到服务器时遇到的问题,以及他的React Native代码和服务器端代码。他使用fetch方法将数据发送到服务器,但无法在服务器端读取/获取发布的数据。 ... [详细]
author-avatar
廖赞胜
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有