一、String 扩展

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

  • includes():返回布尔值,表示是否找到了参数字符串。第二个参数表示搜索起始位置
  • startsWith():返回布尔值,表示参数字符串是否在原字符串的头部。第二个参数表示搜索起始位置
  • endsWith():返回布尔值,表示参数字符串是否在原字符串的尾部。第二个参数针对前n个字符,而其他两个方法针对从第n个位置直到字符串结束
let s = 'Hello world!';s.startsWith('Hello') // true
s.endsWith('!') // true
s.includes('o') // true

let s = 'Hello world!';s.startsWith('world', 6) // true
s.endsWith('Hello', 5) // true
s.includes('Hello', 6) // false

repeat方法返回一个新字符串,表示将原字符串重复n次。参数如果是小数,会被取整。如果repeat的参数是负数或者Infinity,会报错。

'x'.repeat(3) // "xxx"
'hello'.repeat(2) // "hellohello"
'na'.repeat(0) // ""'na'.repeat(2.9) // "nana"'na'.repeat(Infinity)
// RangeError
'na'.repeat(-1)
// RangeError'na'.repeat(-0.9) // ""

na'.repeat(NaN) // ""'na'.repeat('na') // ""
'na'.repeat('3') // "nanana"

③模板字符串

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

$('#result').append('There are <b>' + basket.count + '</b> ' +'items in your basket, ' +'<em>' + basket.onSale +'</em> are on sale!'
);

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

$('#result').append(`There are <b>${basket.count}</b> itemsin your basket, <em>${basket.onSale}</em>are on sale!
`);

模板字符串(template string)是增强版的字符串,用反引号(`)标识。它可以当作普通字符串使用,也可以用来定义多行字符串,或者在字符串中嵌入变量。模板字符串中嵌入变量,需要将变量名写在${}之中。

function authorize(user, action) {if (!user.hasPrivilege(action)) {throw new Error(// 传统写法为// 'User '// + user.name// + ' is not authorized to do '// + action// + '.'`User ${user.name} is not authorized to do ${action}.`);}
}

二、Number 扩展

①ES6 将全局方法parseInt()parseFloat(),移植到Number对象上面,行为完全保持不变。样做的目的,是逐步减少全局性方法,使得语言逐步模块化。

// ES5的写法
parseInt('12.34') // 12
parseFloat('123.45#') // 123.45// ES6的写法
Number.parseInt('12.34') // 12
Number.parseFloat('123.45#') // 123.45

Number.isInteger()用来判断一个数值是否为整数,JavaScript 内部,整数和浮点数采用的是同样的储存方法,比如 25 和 25.0 被视为同一个值。如果参数不是数值,Number.isInteger返回false

Number.isInteger(25) // true
Number.isInteger(25.1) // false
Number.isInteger(25.0) // true
Number.isInteger() // false
Number.isInteger(null) // false
Number.isInteger('15') // false
Number.isInteger(true) // false

③ES6 在 Math 对象上新增了 17 个与数学相关的方法。所有这些方法都是静态方法,只能在 Math 对象上调用。

  • Math.trunc方法用于去除一个数的小数部分,返回整数部分。
  • Math.sign方法用来判断一个数到底是正数、负数、还是零。对于非数值,会先将其转换为数值。
  • Math.cbrt方法用于计算一个数的立方根。

更多详细知识点,请参考ECMAScript 6 入门。

转载于:https://www.cnblogs.com/EricZLin/p/9366808.html

ES6 String和Number扩展相关推荐

  1. ES6基础3(扩展)-学习笔记

    文章目录 ES6基础3(扩展)-学习笔记 字符串扩展 数值扩展 函数扩展 扩展运算符 ES6基础3(扩展)-学习笔记 字符串扩展 //扩展//字符串扩展charAt(); //返回指定索引位置的字符 ...

  2. 【ES6(2015)】Number

    文章目录 1. 二进制与八进制 2. 新增方法 3. Math扩展 1. 二进制与八进制 ES5 中进制转换: const a = 5 console.log(a.toString(2)) // 转换 ...

  3. ES6学习笔记(五):轻松了解ES6的内置扩展对象

    前面分享了四篇有关ES6相关的技术,如想了解更多,可以查看以下连接 <ES6学习笔记(一):轻松搞懂面向对象编程.类和对象> <ES6学习笔记(二):教你玩转类的继承和类的对象> ...

  4. JavaScript中string与number

    JavaScript中string与number string字符串 将一个值使用'单引号或者"双引号,引用起来就是字符串. ES6提供了反引号定义一个字符串,可以支持多行,还支持插值. l ...

  5. 自学-ES6篇-数值的扩展

    1.二进制和八进制表示法 ES6提供了二进制和八进制数值的新的写法,分别用前缀0b(或0B)和0o(或0O)表示. 0b111110111 === 503 // true 0o767 === 503 ...

  6. js中String的常用扩展

    js中String的常用扩展,包括trim,检查中文,url,emal,电话号码,转类型,格式化代码等 //去掉字符串空间调用方式 字符串.trim() String.prototype.trim = ...

  7. 成功解决CatBoostError: Invalid type for cat_feature cat_features must be integer or string, real number

    成功解决 _catboost.CatBoostError: Invalid type for cat_feature[non-default value idx=0,feature_idx=0]=8. ...

  8. ASP.Net string 类的扩展方法 [转]

    string 类的扩展方法列表(基本相同于 IEnumerable<T> 接口的成员列表): Aggregate<> //累加 All<> //是否都满足条件 An ...

  9. string 类的扩展方法

    string 类的扩展方法 分类: 2011年技术文章2011-05-11 18:14 76人阅读 评论(0) 收藏 举报 string 类的扩展方法列表(基本相同于 IEnumerable<T ...

  10. es6调用c语言sdk,ES6 关于对象的扩展-contracts-WinFrom控件库|.net开源控件库|HZHControls官网...

    今天来简单说下ES6 中对象的扩展 首先回顾传统的对象表示法 let person={ 'name':'zhang', 'age':'20', 'play':function(){ alert('pl ...

最新文章

  1. 留念,第一次在C中调用lua成功!
  2. linux安装系统配置环境变量,Linux系统安装jdk及配置环境变量的方法
  3. 美丽新世界:当代日本视觉文化展
  4. js原生实现点击事件只创建一个元素
  5. 广度优先遍历_LeetCode | 广度优先遍历
  6. MySQL学习笔记——显示数据库信息
  7. 剑指offer系列14---合并两个升序链表
  8. 常用的数学计算工具类
  9. Installation error: INSTALL_FAILED_NO_MATCHING_ABIS
  10. 数据结构专题(一):1.3.顺序表插入删除
  11. 企业如何开展数据可视化建设
  12. Python 路径问题--No such file or directory
  13. php网站鼠标美化,安装鼠标主题 - 让ubuntu的鼠标变得更加漂亮【鼠标指针主题包】...
  14. sougou ubuntu 优麒麟_Ubuntu20.04LTS安装搜狗输入法
  15. Windows系统运行VirtualBox一直出现0x00000000指令引用的0x00000000内存该内存不能为written
  16. android 多个按键精灵,Android 一种通用的按键精灵的实现思路
  17. 建筑平面布置与防火防烟分区(二)
  18. 视频教程-微信小程序开发实战之番茄时钟开发-微信开发
  19. 3GPP协议 25.105
  20. 剖析非同质化代币ERC721-全面解析ERC721标准

热门文章

  1. Linux 工程师的 6 类好习惯和 23 个教训
  2. 中国最惨创业者的惨痛教训!
  3. Android自定义View之刻度尺
  4. 微型计算机的软件系统分为哪几类,系统软件分为哪几类?各有什么特点?
  5. RequestHeaders添加自定义参数
  6. python 包含汉字的文件读写之每行末尾加上特定字符
  7. 400多个开源项目以及43个优秀的Swift开源项目-Swift编程语言资料大合集
  8. [WebView五学习]:调试Web Apps
  9. 单文档切换OpenGL视图
  10. Android中关于Task的一些认识