ECMAScript 6 讲讲你不知道的

解构赋值:

你的变量都这样赋值:

let a = 1;
let b = 2;
let c = 3;

其实你可以这样:

let [a, b, c] = [1, 2, 3];
let [a, [[b], c]] = [1, [[2], 3]];

要注意的是,数组的元素是按次序排列的,变量的取值由它的位置决定;而对象的属性没有次序,变量必须与属性同名,才能取到正确的值:

let { a, b } = { a: 'aaa', b: 'bbb' };
a // "aaa"
b // "bbb"

let { c } = { a: 'aaa', b: 'bbb' };
c // undefined

字符串遍历:

字符串怎么遍历?

现在字符串可以被for...of循环遍历

for ( let item of 'abc' ) {
  console.log( item )
}
// "a"
// "b"
// "c"

实例方法:

includes(), startsWith(), endsWith():

怎么确定一个字符串是否包含在另一个字符串中?是不是上来就 indexOf ?

那你记得 includes 吗?对的,它现在同样可以用于字符串:

let s = 'Hello world!';

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

repeat():

返回一个新字符串,表示将原字符串重复n次。参数如果是小数会被取整,参数是负数或者Infinity会报错,是字符串则会先转换成数字

'a'.repeat(3) // "aaa"
'a'.repeat(2.9) // "aa"
'a'.repeat(Infinity)// Error
'a'.repeat(-1)// Error
'a'.repeat(-0.9) // ""
'a'.repeat(NaN) // ""
'a'.repeat('a') // ""

padStart(),padEnd():

字符串不够指定长度,会在 padStart 头部、padEnd 尾部补全

'a'.padStart(5, 'b') // 'bbbba'
'a'.padEnd(5, 'b') // 'abbbb'

trimStart(),trimEnd():

消除字符串头部、尾部的空格,它们返回的都是新字符串,不会修改原始字符串

const s = '  abc  ';

s.trim() // "abc"
s.trimStart() // "abc  "
s.trimEnd() // "  abc"

replaceAll():

replace() 只能换第一个?现在 replaceAll() 它来了 :

'aabbcc'.replace(/b/g, '_') //当初的我们
'aabbcc'.replaceAll('b', '_') //现在的我们

数值分隔符:

1,000,000,000,000 这样的数值是不是很清楚?

现在,我们也可以有了:

123_00 === 12_300 // true
12345_00 === 123_4500 // true
12345_00 === 1_234_500 // true

允许 JavaScript 的数值使用下划线(_)作为分隔符

函数参数的默认值:

以前的我们想要有个参数默认值:

function log(x, y) {
  y = y || 'World';
  console.log(x, y);
}

log('Hello') // Hello World
log('Hello', 'China') // Hello China
log('Hello', '') // Hello World

现在的我们:

function log(x, y = 'World') {
  console.log(x, y);
}

log('Hello') // Hello World
log('Hello', 'China') // Hello China
log('Hello', '') // Hello

箭头函数:

家喻户晓的箭头函数我就不说了:

let f = v => v;

// 等同于
let f = function (v) {
  return v;
};

函数参数的尾逗号:

函数的最后一个参数可以有尾逗号

function clownsEverywhere(
  param1,
  param2,
) { /* ... */ }

clownsEverywhere(
  'foo',
  'bar',
);

这有啥用呢?我想想应该是 版本管理的时候 在原来最后一个参数后面添加一个逗号,会显示添加逗号的那一行发生了变动,有尾逗号的话,就不会显示变化

catch 命令的参数省略:

现在catch后面可以不再跟随不用的参数:

try {
  // ...
} catch {
  // ...
}

扩展运算符:

将一个数组,变为参数序列,也是复制数组的新的简便写法:

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

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

const a1 = [1, 2];
const a2 = [...a1];
//[...a1]会返回原数组的克隆,再修改a2就不会对a1产生影响

再见了我们的 apply(),再见了concat()

将字符串转为的数组:

[...'hello']
// [ "h", "e", "l", "l", "o" ]

 

对象属性同名简写 :

以前的对象属性名要这么写:

const name = 'aaa'
const age = '33'

const obj = {
  name: name,
  age: age
}

console.log(obj) // { name: 'aaa', age: '33' }

现在可以这样简写:

const name = 'aaa'
const age = '33'

// 属性同名可简写
const obj = {
  name
  age
}

console.log(obj) // { name: 'aaa', age: '33' }

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值