ES6字符串和数字格式新增的所有知识点(全面详细)

ES6学习复习系列文章目录

ES6所有知识点学习复习文章链接地址

ES6字符串和数字格式新增的所有知识点(全面详细)

本文研究对象的是ES6字符串, 讲解模板字符串的定义用法和用途,模板字符串的产生极大的方便了js的编程,其中的标签模板对函数传参有了新方法。 除此自外就是新增加的常用字符串方法的实例讲解了

正文内容

ES6字符串的新型遍历方法

利用for of 可以将字符串的每个字母遍历出来
当字符串被用来遍历的时候, 字符串临时变成了一个数组, 当完成遍历之后, 这个数组就会被销毁
看代码

for (let letter of 'money'){
    console.log(letter);
}

在这里插入图片描述
但是

请注意:
和其他的封装对象类似, 基础类型的封装对象只给我们提供的读取的接口, 我们无法通过遍历的方式改变字符串的字符串

for(let c of str){
    c = 'm'
}

console.log(str);

ES6的模板字符串

模板字符串的格式

反引号+字符串${变量}字符串+反引号
如下

const a = 2
const b = 3

console.log(`分别输出a,b,a+b的值为${a},${b},${a+b}`);

不是字符串将用toString()转化为字符串

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


function str(){
    return "41asd561da56"
}
console.log(`ashda ${str()}`);

在这里插入图片描述

标签模板的形式

模板字符串的功能,不仅仅是上面这些。它可以紧跟在一个函数名后面,该函数将被调用来处理这个模板字符串。这被称为“标签模板”功能(tagged template)。

function fn(s){
    return s+'black'
}

let  x = fn`white`

console.log(x);

在这里插入图片描述
但是,如果模板字符里面有变量,就不是简单的调用了,而是会将模板字符串先处理成多个参数,再调用函数。

let i = 5
let j = 10
fn`arg1 ${a+b} arg2 ${a*b}`);

等于

fn([arg1,arg2],15,50

不要忘记空格也是字符串

const n = 1
const m =2
function tag(){
    console.log(arguments);
}
tag`coder ${n+m} wang ${a-b}`

在这里插入图片描述
当变量是第一个或是最后一个时,会在第一个前方或是最后一个的后方加入一个空字符串

ES6的字符串新方法

raw()

ES6 为原生的 String 对象,提供了一个raw()方法。该方法返回一个斜杠都被转义(即斜杠前面再加一个斜杠)的字符串,往往用于模板字符串的处理方法

在这里插入图片描述
如果原字符串的斜杠已经转义,那么就直接输出该模板字符串

在这里插入图片描述
.raw方法不能直接往里面传入普通字符串的,否则是会直接报错的
在这里插入图片描述

includes(), startsWith(), endsWith()

  • includes():返回布尔值,表示是否找到了参数字符串。
  • startsWith():返回布尔值,表示参数字符串是否在原字符串的头部。
  • endsWith():返回布尔值,表示参数字符串是否在原字符串的尾部

repeat()

在这里插入图片描述
在这里插入图片描述

padStart(),padEnd()

在这里插入图片描述

字符串的方法拓展之字符串空格消除trimStart(),trimEnd()

ES2017 引入了字符串补全长度的功能。如果某个字符串不够指定长度,会在头部或尾部补全。
在这里插入图片描述
padStart()和padEnd()一共接受两个参数,第一个参数是字符串补全生效的最大长度,第二个参数是用来补全的字符串。

使用时的三种情形

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

字符串的方法拓展之字符串空格消除trimStart(),trimEnd()

ES2019 对字符串实例新增了trimStart()和trimEnd()这两个方法。它们的行为与trim()一致,trimStart()消除字符串头部的空格,trimEnd()消除尾部的空格。

它们返回的都是新字符串,不会修改原始字符串。

在这里插入图片描述

数字格式的方法拓展

ES6 在Number对象上,新提供了Number.isFinite()和Number.isNaN()两个方法。
Number.isFinite()用来检查一个数值是否为有限的(finite),即不是Infinity。
Number.isNaN()用来检查一个值是否为NaN。

Number.isFinite()

在这里插入图片描述

Number.isNaN()

在这里插入图片描述

它们与传统的全局方法isFinite()和isNaN()的区别在于,传统方法先调用Number()将非数值的值转为数值,再进行判断; 而这两个新方法只对数值有效,Number.isFinite()对于非数值一律返回false, Number.isNaN()只有对于NaN才返回true,非NaN一律返回false。

Number.isInteger()

在这里插入图片描述

Number.isSafeInteger()

在这里插入图片描述

Math.trunc()

Math.trunc方法用于去除一个数的小数部分,返回整数部分。
在这里插入图片描述

Math.sign()

Math.sign方法用来判断一个数到底是正数、负数、还是零。对于非数值,会先将其转换为数值。
它会返回五种值。

  1. 参数为正数,返回+1;
  2. 参数为负数,返回-1;
  3. 参数为 0,返回0;
  4. 参数为-0,返回-0;
  5. 其他值,返回NaN。
    在这里插入图片描述
    如果参数是非数值,会自动转为数值。对于那些无法转为数值的值,会返回NaN。
    在这里插入图片描述

数字格式的拓展

在这里插入图片描述

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值