ES6+新特性

ECMAScript 和 JavaScript 的关系

ECMAScript 和 JavaScript 的关系是,前者是后者的规格,后者是前者的一种实现,常场合,这两个词是可以互换的。

Babel 是一个广泛使用的 ES6 转码器,可以将 ES6 代码转为 ES5 代码,从而在老版本的浏览器执行。这意味着,你可以用 ES6 的方式编写程序,又不用担心现有环境是否支持

Let命令

只在声明所在的块级作用域内有效:ES6 新增了 let 命令,用来声明变量。它的用法类似于 var ,(var 函数级作用域)但是所声明的变量,只在 let 命令所在的代码块内有效(花括号级作用域)。
for 循环的计数器,就很合适使用 let 命令

let不存在变量提升:var 命令会发生“变量提升”现象,即变量可以在声明之前使用,值为undefined 。
为了纠正这种现象, let 命令改变了语法行为,它所声明的变量一定要在声明后使用,否则报错。
let不允许重复声明:let 不允许在相同作用域内,重复声明同一个变量。

Const命令

只在声明所在的块级作用域内有效

const 声明一个只读的常量。一旦声明,常量的值就不能改变

const 声明的变量不得改变值,这意味着, const 一旦声明变量,就必须立即初始化,不能留到以后赋值

const 命令声明的常量也是不存在提升

const 声明的常量,也与 let 一样不可重复声明

对象解构赋值

对象的属性没有次序,变量必须与属性同名,才能取到正确的值

let {
   age,name} = {
   name:"iwen",age:20};
age // 20

如果要将一个已经声明的变量用于解构赋值,必须非常小心

let hello = "Hello"; 
let {
    hello } = {
   hello:"hello"}; // 报错
let hello = "Hello"; 
({
    hello } = {
   hello:"hello"}); // 正确

字符串新增方法

includes(), startsWith(), endsWith()

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

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

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

repeat()

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

padStart(),padEnd()

ES2017 引入了字符串补全长度的功能。如果某个字符串不够指定长度,会在头部或尾部补全。 padStart() 用于头部补全, padEnd() 用于尾部补全。

'x'.padStart(5, 'ab') // 'ababx'
'x'.padStart(4, 'ab') // 'abax'
'x'.padEnd(5, 'ab') // 'xabab'
'x'.padEnd(4, 'ab') // 'xaba'

trimStart(),trimEnd()

ES2019对字符串实例新增了 trimStart() 和 trimEnd() 这两个方法。它们的行为与 trim() 一致, trimStart() 消除字符串头部的空格, trimEnd() 消除尾部的空格。它们返回的都是新字符串,不会修改原始字符串。

at()

at() 方法接受一个整数作为参数,返回参数指定位置的字符,支持负索引(即倒数的位置)。

如果参数位置超出了字符串范围, at() 返回 undefined

数组扩展_扩展运算符

扩展运算符(spread)是三个点( … )。将一个数组转为用逗号分隔的参数序列

console.log(...[1, 2, 3])
// 1 2 3

由于扩展运算符可以展开数组,所以不再需要 apply方法,将数组转为函数的参数了

展开数组
ES5 的写法:Math.max.apply(null, [14, 3, 77])

ES6 的写法:Math.max(…[14, 3, 77])

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值