ES6基础(二)

Wesley13
• 阅读 473

一、ES6字符串扩展

字符串模板

  在传统的JavaScript语言中,输出模板通常是这样写的。

ES6基础(二)

上面这种写法繁琐不方便,于是ES6中引入了字符串模板解决这个问题。

ES6基础(二)

用反引号(`)标识。他可以当做普通字符串使用,也可以用来定义多行字符串,或者在字符串中嵌入变量。

如果使用模板字符串表示多行字符串,所有的空格和缩进都会保留在输出当中。

ES6基础(二)

上面代码中,所有模板字符串的空格和换行,都是被保留的,比如

    标签前面会有一个换行。如果你不想要这个换行,可以使用trim方法消除它。

    ES6基础(二)

    模板字符串中嵌入变量,需要将变量名写在${}之中。

    ES6基础(二)

    大括号内部可以放入任意JavaScript表达式,可以进行计算,以及引用对象属性。

    ES6基础(二)

    模板字符中还能调用函数。

    ES6基础(二)

    如果大括号中的值不是字符串,将按照一般的规则转为字符串。比如,大括号中是一个对象,将默认调用对象的toString方法。

    如果模板字符串中的变量没有声明,将会报错。

    ES6基础(二)

    模板字符串甚至还能嵌套。

    ES6基础(二)

      includes(), startsWith(), endsWith()

      在JavaScript中只有indexOf方法,可以用来确定一个字符串是否包含在另一个字符串中。而ES6中有提供了三种新方法。

    **--includes()**:返回布尔值,表示是否找到了参数字符串。

    **--startsWith()**:返回布尔值,表示参数数字字符串是否在原字符串的头部。

    --endsWith() :返回布尔值,表示参数数字字符串是否在原字符串的尾部。

    ES6基础(二)

    这三个方法都是支持第二个参数,表示开始搜索的位置。

    ES6基础(二)

    上面代码表示,使用第二个参数n时,endsWith的行为与其他两个方法有所不同。它针对前n个字符,而其他两个方法针对从第n个位置直到字符串结束。

        repeat()

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

    ES6基础(二)

    如果参数是小数,那么会被取整,且不会进行四舍五入,小数点后的书都会被舍弃掉。

    ES6基础(二)

    如果repeat的参数是负数或者Infinity,会报错。

    ES6基础(二)

    但是,如果参数是 0 到 -1 之间的小数,则等同于 0 ,这是因为会先进行取整运算。0 到 -1 之间的小数,取整以后等于 -0,repeat视同为 0 。

    ES6基础(二)

    参数NaN等同于 0。

    ES6基础(二)

    如果repeat的参数是字符串,则会先转换成数字。

    ES6基础(二)

      padStart(),padEnd()

    padStart()用于头部补齐,padEnd()用于尾部补齐。

    ES6基础(二)

    上面代码中,padStart()和padEnd()一共接受两个参数,第一个参数是字符串补全生效的长度,第二个参数是用来补全的字符串。

    如果 原字符串的长度大于或等于最大的长度,则字符串不生效,返回原字符串。

    ES6基础(二)

    如果用来补齐的字符串与原字符串,两者的长度之和超过了最大长度,则会截去超出部分的补全字符串。

    ES6基础(二)

    如果省略第二个参数,默认使用空格补齐长度。

    ES6基础(二)

    二、正则的扩展

    RegExp 构造函数

    在ES5中,RegExp构造函数的参数有两种情况。

    第一种是:参数是字符串,这是第二个参数表示正则表达式的修饰符。

    ES6基础(二)

    第二种是:参数是正则表达式,这时会返回一个原有正则表达式的拷贝。

    ES6基础(二)

    但是,在ES5中不允许此时使用第二个参数添加修饰符,否则就会报错。

    ES6基础(二)

    所以,在ES6中就改变咯额这种行为。如果RegExp构造函数第一个参数是一个正则对象,那么可以使用第二个参数指定修饰符。而且返回的正则表达式会忽略原有的正则表达式的修饰符,只使用新指定的修饰符。

    ES6基础(二)

    上面的代码中,原有的正则对象的修饰符是ig,他会被第二个参数i覆盖。

    字符串的正则方法

    字符串对象共有4种方法,可以使用正则表达式:**match()、replace()、search()、split()**。

    这4种方法咋语言内部全部调用RegExp的实例方法,从而做到所有与正则相关的方法,全部定义在RegExp对象上。

    • String.prototype.match 调用 RegExp.prototype[Symbol.match]
    • String.prototype.replace 调用 RegExp.prototype[Symbol.replace]
    • String.prototype.search 调用 RegExp.prototype[Symbol.search]
    • String.prototype.split 调用 RegExp.prototype[Symbol.split]
点赞
收藏
评论区
推荐文章
blmius blmius
2年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
Karen110 Karen110
2年前
一篇文章带你了解JavaScript日期
日期对象允许您使用日期(年、月、日、小时、分钟、秒和毫秒)。一、JavaScript的日期格式一个JavaScript日期可以写为一个字符串:ThuFeb02201909:59:51GMT0800(中国标准时间)或者是一个数字:1486000791164写数字的日期,指定的毫秒数自1970年1月1日00:00:00到现在。1\.显示日期使用
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
Stella981 Stella981
2年前
JS 苹果手机日期显示NaN问题
问题描述newDate("2019122910:30:00")在IOS下显示为NaN原因分析带的日期IOS下存在兼容问题解决方法字符串替换letdateStr"2019122910:30:00";datedateStr.repl
Stella981 Stella981
2年前
KVM调整cpu和内存
一.修改kvm虚拟机的配置1、virsheditcentos7找到“memory”和“vcpu”标签,将<namecentos7</name<uuid2220a6d1a36a4fbb8523e078b3dfe795</uuid
Wesley13 Wesley13
2年前
ES6学习笔记(3)
参考书《ECMAScript6入门》http://es6.ruanyifeng.com/字符串的扩展ES6之前只能识别\\u0000\\uFFFF之间的字符,超过此范围,识别会出错;ES6弥补了这个错误ES6扩展的新方法codePointAt"𠮷".CodePointAt(0)//返回超过\\u00
Easter79 Easter79
2年前
Twitter的分布式自增ID算法snowflake (Java版)
概述分布式系统中,有一些需要使用全局唯一ID的场景,这种时候为了防止ID冲突可以使用36位的UUID,但是UUID有一些缺点,首先他相对比较长,另外UUID一般是无序的。有些时候我们希望能使用一种简单一些的ID,并且希望ID能够按照时间有序生成。而twitter的snowflake解决了这种需求,最初Twitter把存储系统从MySQL迁移
Wesley13 Wesley13
2年前
00:Java简单了解
浅谈Java之概述Java是SUN(StanfordUniversityNetwork),斯坦福大学网络公司)1995年推出的一门高级编程语言。Java是一种面向Internet的编程语言。随着Java技术在web方面的不断成熟,已经成为Web应用程序的首选开发语言。Java是简单易学,完全面向对象,安全可靠,与平台无关的编程语言。
Wesley13 Wesley13
2年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
Python进阶者 Python进阶者
3个月前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这