JavaScript学习笔记08-ES8

Object中的新方法values,entries;String中新方法padStart,padEnd;定义和调用时多一个逗号

1. values

之前可以通过 Object.keys 获取一个对象所有的key,在ES8中提供了 Object.values 来获取所有的value值

1
2
3
4
5
6
7
8
9
10
const obj = {
uname: "why",
age: 18
}
// [ 'uname', 'age' ]
console.log(Object.keys(obj));
// [ 'why', 18 ]
console.log(Object.values(obj));
// [ 'a', 'b', 'c' ]
console.log(Object.values("abc"));

2. entries

通过Object.entries 可以获取到一个数组,数组中会存放可枚举属性的键值对数组

也可以直接存入数组,索引值将作为key

1
2
3
4
5
6
7
8
9
10
11
12
13
// [ [ 'uname', 'why' ], [ 'age', 18 ] ]
console.log(Object.entries(obj));

for (const entry of Object.entries(obj)) {
const [key,value] = entry;
// uname why
// age 18
console.log(key,value);
}
// [ [ '0', 'abc' ], [ '1', 'cba' ], [ '2', 'nba' ] ]
console.log(Object.entries(["abc","cba","nba"]));
// [ [ '0', 'a' ], [ '1', 'b' ], [ '2', 'c' ] ]
console.log(Object.entries("abc"));

3. padStart&padEnd

  • 某些字符串需要对其进行前后的填充,来实现某种格式化效果,ES8中增加了 padStart 和 padEnd 方法,分 别是对字符串的首尾进行填充

    • 第一个参数是限制字符串长度值
    1
    2
    3
    4
    5
    const message = "Hello World";
    // aaaHello World
    console.log(message.padStart(15,"a"));
    // Hello Worldbbbb
    console.log(message.padEnd(15,"b"));
  • 简单举一个应用场景:对身份证、银行卡的前面位数进行隐藏

    1
    2
    3
    4
    5
    const cardNumber = "33333333333333";
    const lastFourNumber = cardNumber.slice(-4);
    const finalCardNumber = lastFourNumber.padStart(cardNumber.length,"*");
    // **********3333
    console.log(finalCardNumber);

4. Trailing Commas

允许在函数定义和调用时多加一个逗号

1
2
3
4
function foo(a,b,){
console.log(a,b);
}
foo(10,20,);
本文结束  感谢您的阅读