欢迎光临
我们一直在努力

你知道这11个可能从未使用过的JavaScript特性吗?

你可能从未使用过的11个JavaScript特性(小结)

你知道这11个可能从未使用过的JavaScript特性吗?

1.Array.prototype.includes()

用于判断数组是否包含某个元素,返回布尔值。

let fruits = ['apple', 'banana', 'mango'];
console.log(fruits.includes('banana')); // true

2.Object.is()

判断两个值是否严格相等,与===不同之处在于它能正确处理NaN

console.log(Object.is(NaN, NaN)); // true
console.log(NaN === NaN); // false

3.String.prototype.padStart()String.prototype.padEnd()

用于在字符串的开头或结尾填充字符,直到达到指定的长度。

let str = "hello";
console.log(str.padStart(10, "*")); // "*****hello"
console.log(str.padEnd(10, "*"));   // "hello*****"

4.Promise.allSettled()

等待所有给定的promise完成,无论它们是fulfilled还是rejected。

Promise.allSettled([fetch('/api/data'), fetch('/api/other')])
  .then(results => results.forEach(result => console.log(result.status)));

5.Optional chaining (?.)

如果对象为null或undefined,则表达式短路返回undefined。

你知道这11个可能从未使用过的JavaScript特性吗?

let user = null;
console.log(user?.name); // undefined

6.Nullish coalescing operator (??)

如果左侧的操作数是null或undefined,则返回右侧的操作数;否则返回左侧操作数。

let foo = null ?? "default";
console.log(foo); // "default"

7.BigInt

表示任意精度的整数。

let bigInt = BigInt("9007199254740991");
bigInt++;
console.log(bigInt); // 9007199254740992n

8.Symbol

创建独一无二的标识符,可以用作对象属性的键。

let sym = Symbol("unique");
let obj = { [sym]: "value" };
console.log(obj[sym]); // "value"

9.Object.fromEntries()

将一个键值对列表转换为对象。

let entries = [["name", "Alice"], ["age", 25]];
let obj = Object.fromEntries(entries);
console.log(obj); // { name: "Alice", age: 25 }

10.Array.prototype.flat()

将多维数组“拉平”为一维数组。

你知道这11个可能从未使用过的JavaScript特性吗?

let arr = [1, [2, [3, [4]], 5];
console.log(arr.flat()); // [1, 2, 3, 4, 5]

11.Dynamic import()

动态导入模块,返回一个promise。

import('/path/to/module.js')
  .then(module => {
    console.log(module.functionName());
  })
  .catch(err => console.error(err));

相关问题与解答

Q1:什么是BigInt,它与普通的整数有什么区别?

A1:BigInt是一种内置对象,它提供了一种方法来表示大整数,即超出JavaScript安全整数范围的数字,普通的整数(Number类型)在JavaScript中是基于IEEE 754标准的双精度浮点格式,这限制了它们只能安全地表示(2^53 1)到2^53 1之间的整数。BigInt则没有这个限制,可以表示任意大小的整数,只受限于可用内存。

Q2:Array.prototype.flat()是如何工作的?它可以接收参数吗?

A2:Array.prototype.flat()方法会按照指定的深度递归遍历数组,并将所有元素与最内层的子数组合并成一个新数组,如果不传递任何参数,默认深度为1,这意味着它将扁平化一层嵌套,如果传递了一个整数作为参数,它会扁平化指定深度的嵌套。arr.flat(2)将会扁平化两层深度的嵌套数组。

到此,以上就是小编对于“你可能从未使用过的11 个JavaScript特性(小结)”的问题就介绍到这了,希望介绍的几点解答对大家有用,有任何问题和不懂的,欢迎各位朋友在评论区讨论,给我留言。

赞(0)
版权声明:本文采用知识共享 署名4.0国际许可协议 [BY-NC-SA] 进行授权
文章名称:《你知道这11个可能从未使用过的JavaScript特性吗?》
文章链接:https://yuyunkj.com/article/10363.html
本站资源仅供个人学习交流,请于下载后24小时内删除,不允许用于商业用途,否则法律问题自行承担。

评论 抢沙发