ES2023

数组被修改时返回副本

Array 和 TypedArray 有很多方法(比如 sort/splice 等)会改变数组自身,比如:

const array = [3, 2, 1];
const sortedArray = array.sort();
// [1, 2, 3]
console.log(sortedArray);
// 原数组也变成了 [1, 2, 3]
console.log(array);

如果不希望改变数组自身,可以这样做:

const array = [3, 2, 1];
const sortedArray = array.toSorted();
// [1, 2, 3]
console.log(sortedArray);
// 原数组不变 [3, 2, 1]
console.log(array);

类似的方法还有这些:

T.prototype.toReversed() -> T
T.prototype.toSorted(compareFn) -> t
T.prototype.toSpliced(start, deleteCount, ...items) -> T
T.prototype.with(index, value) -> T

T.prototype.with(index, value) -> T使用

const array = [1, 2, 3];
const newArray = array.with(1, 'world');

// [1, 'world', 3]
console.log(newArray);
// 原数组不变 [1, 2, 3]
console.log(array);

WeakMap 支持 Symbol 作为 key

WeakMap 原本只支持 object 类型的 key,现在支持了 Symbol 类型作为 key。

const weak = new WeakMap();
weak.set(Symbol('symbol1'), {});

Hashbang 语法

Hashbang 也叫 Shebang,是一个由井号和叹号构成的字符序列 #!,用来指定使用哪种解释器执行此文件:

// hashbang.js

#!/usr/bin/env node
console.log('hashbang');


// nohashbang.js

console.log('no hashbang')

在终端执行,没有 Hashbang 时,需要使用 node 指令才能执行

你可能感兴趣的:(ES6+,javascript,前端,开发语言)