本月 Web Dev 有哪些新功能?

2025-05-25

本月 Web Dev 有哪些新功能?

你好,开发者👋

祝大家一切顺利。Web 开发领域不断发展,新的工具和功能不断涌现,提升了开发者的能力和用户体验。最近,JavaScript 引入了几种强大的 Set 对象操作方法,目前所有主流浏览器均已支持这些方法。这些新方法简化了诸如交集、并集和差集等常见操作,使 Set 操作更加高效直观。与此同时,CSS 的进步扩展了渐变色插值选项,Chrome Canary 等浏览器中的实验性功能也通过内置的 AI 功能不断突破极限。此外,ECMAScript 2024 的批准引入了处理 Promise 的创新方法,标志着 JavaScript 开发又向前迈出了重要一步。在本文中,我们将探讨这些激动人心的更新及其对开发者的意义。

1. 新的SET方法被广泛应用

JavaScript 中的 Set 对象现在带有许多有用的方法,并且所有主流浏览器都支持这些方法

当然,以下是每种方法的完整示例:

intersection()

intersection方法返回一个包含两个集合中存在的元素的新集合。

const setA = new Set([1, 2, 3, 4, 5, 6]);
const setB = new Set([2, 4, 6, 8, 10]);

const intersectionSet = setA.intersection(setB);
// Set {2, 4, 6}
console.log(intersectionSet);
Enter fullscreen mode Exit fullscreen mode

union()

union方法返回一个新集合,包含两个集合中的所有元素,没有重复元素。

const setA = new Set([1, 2, 3, 4, 5, 6]);
const setB = new Set([2, 4, 6, 8, 10]);

const unionSet = setA.union(setB);
// Set {1, 2, 3, 4, 5, 6, 8, 10}
console.log(unionSet);
Enter fullscreen mode Exit fullscreen mode

difference()

difference方法返回一个新集合,其中包含第一个集合中存在但不存在于第二个集合中的元素。

const setA = new Set([1, 2, 3, 4, 5, 6]);
const setB = new Set([2, 4, 6, 8, 10]);

const differenceSet = setA.difference(setB);
// Set {1, 3, 5}
console.log(differenceSet);
Enter fullscreen mode Exit fullscreen mode

isSupersetOf()

isSupersetOf方法返回一个布尔值,指示第一个集合是否是第二个集合的超集。

const setA = new Set([1, 2, 3, 4, 5, 6]);
const setB = new Set([2, 4, 6]);

const isSuperset = setA.isSupersetOf(setB);
// true
console.log(isSuperset);
Enter fullscreen mode Exit fullscreen mode

isDisjointFrom()

isDisjointFrom方法返回一个布尔值,指示两个集合是否不相交(即没有共同的元素)。

const setA = new Set([1, 2, 3, 4, 5, 6]);
const setB = new Set([7, 8, 9, 10]);

const isDisjoint = setA.isDisjointFrom(setB);
// true
console.log(isDisjoint);
Enter fullscreen mode Exit fullscreen mode

symmetricDifference()

symmetricDifference方法返回一个新集合,其中包含存在于任一集合但不存在于两者中的元素。

const setA = new Set([1, 2, 3, 4, 5, 6]);
const setB = new Set([2, 4, 6, 8, 10]);

const symmetricDifferenceSet = setA.symmetricDifference(setB);
// Set {1, 3, 5, 8, 10}
console.log(symmetricDifferenceSet);
Enter fullscreen mode Exit fullscreen mode

isSubsetOf()

isSubsetOf方法返回一个布尔值,指示第一组是否是第二组的子集。

const setA = new Set([2, 4, 6]);
const setB = new Set([1, 2, 3, 4, 5, 6, 8, 10]);

const isSubset = setA.isSubsetOf(setB);
// true
console.log(isSubset);
Enter fullscreen mode Exit fullscreen mode

通过这些方法,您可以在 JavaScript 中方便地执行各种集合操作。

2. Firefox新增渐变颜色插值功能

Firefox 是最后一款完全支持该功能的浏览器,您可以在不同空间的 CSS 渐变中插入颜色,而不仅仅是传统的 RGB。

//before
.item {
     background: linear-gradient(to right, red, blue);
}
Enter fullscreen mode Exit fullscreen mode
//now
.item {
     background: linear-gradient(in hst to right, red, blue);
}
Enter fullscreen mode Exit fullscreen mode

魔法的图像对吗?

3. 您的浏览器内置有 AI 吗?

Google Chrome正在试验一种新的 Web API,旨在在浏览器中引入一种可通过 JavaScript 访问的语言模型。此 API 已发布至Chrome Canary版本。

// Assume inputText is a string containing the text you want to prompt the AI with.
const inputText = "What is the capital of France?";

async function useAI() {
    try {
        // Create a text session with the AI
        const session = await window.ai.createTextSession();

        // Get a streaming response from the AI
        const result = session.promptStreaming(inputText);

        // Initialize an empty string to collect the response
        let aiResponse = "";

        // Iterate over the streamed chunks of the result
        for await (const chunk of result) {
            // Append each chunk to the response
            aiResponse += chunk;
            // Optionally, you can log each chunk as it is received
            console.log(chunk);
        }

        // Log the complete response
        console.log("AI Response:", aiResponse);
    } catch (error) {
        console.error("Error using AI:", error);
    }
}

// Call the function to use the AI
useAI();
Enter fullscreen mode Exit fullscreen mode

此示例执行以下操作:

  • 输入文本:指定 AI 模型的输入文本。
  • AI 会话创建:使用 window.ai.createTextSession() 创建与 AI 模型的会话。
  • 提示流:将输入文本发送到 AI 模型,并开始使用 session.promptStreaming(inputText) 分块接收响应。
  • 收集响应:遍历流块,将它们收集到单个响应字符串中。
  • 记录响应:在接收到每个块时记录它,并在接收到所有块后记录完整的响应。
  • 错误处理:包括一个 try-catch 块来处理过程中的任何潜在错误。

*提示:*确保您拥有最新版本的 Chrome Canary,并且已启用任何必要的实验标志或权限以使用此新 API。

4.ECMAScript2024已获批准!

一些新功能已被 ECMS General Assemble 批准为正式 JavaScript 规范的一部分 - 包括一种新的声明承诺的方式

const { promise, resolve, reject } = Promise.withResolvers()
Enter fullscreen mode Exit fullscreen mode

结尾处的图片

随着 Web 开发领域的不断发展,对开发者来说,及时了解最新的功能和工具至关重要。JavaScript 中新增的 Set 方法提供了强大而直观的集合操作处理方式,从而提升了代码效率和可读性。CSS 的改进(例如渐变的颜色插值)为设计师提供了更丰富的创作空间。Chrome Canary 版本中实验性的 AI 集成为交互式 Web 应用程序开辟了新的可能性。最后,ECMAScript 2024 的批准带来了一些有前景的增强功能,尤其是在 Promise 的管理方面。拥抱这些创新不仅可以简化开发工作流程,还能创建更具动态性和响应能力的 Web 应用程序。我们期待未来的发展,这些更新代表着我们朝着更强大、更灵活的 Web 开发环境迈出了重要一步。

编码愉快👋

文章来源:https://dev.to/mursalfk/whats-new-in-web-dev-this-month-1al8
PREV
您必须使用的 5 个 VSCode 扩展
NEXT
微前端:带有微应用程序的 Windows 克隆版