返回

湖中剑 | 前端周刊 #4 | 2021-08-16

前端

周刊收集包括前端(但不限于前端)的文章、新闻、开源项目、工具等等,每周一更新。

目录

  • V8 引擎发布 v9.3:更快的编译速度
  • Object.hasOwn 作为 Object.prototype 的新成员
  • TypeScript 4.4 发布:类型推断和错误处理的增强
  • WebAssembly 2.0 草案发布:引入新的功能和改进
  • Rust 1.56 发布:改进编译器和标准库
  • Svelte 3.33 发布:带来改进的响应式系统和更好的 TypeScript 支持
  • Vue.js 3.2 发布:改进了组件 API 和错误处理
  • React.js 17.0.2 发布:修复了一些错误并改进了性能
  • Node.js 16.13.1 发布:修复了一些错误并改进了安全性
  • Docker 20.10.17 发布:修复了一些错误并改进了稳定性
  • Kubernetes 1.22.6 发布:修复了一些错误并改进了安全性
  • Git 2.32.0 发布:带来了新的功能和改进
  • Linux 5.15.19 发布:修复了一些错误并改进了安全性

V8 引擎发布 v9.3:更快的编译速度

V8 引擎是一个用于执行 JavaScript 的开源引擎,它被广泛用于 Chrome 浏览器和其他基于 Chromium 的浏览器中。V8 引擎 v9.3 于 2021 年 8 月 16 日发布,带来了更快的编译速度和一些新的功能。

V8 引擎 v9.3 的主要改进包括:

  • 更快的编译速度:V8 引擎 v9.3 的编译速度比 v9.2 快了 10% 以上。这得益于一系列优化,包括改进的解析器和代码生成器。
  • 更好的类型推断:V8 引擎 v9.3 的类型推断能力得到了改进,这使得它能够更好地推断出变量和表达式的类型。这可以提高代码的性能和可读性。
  • 新的 JavaScript 特性:V8 引擎 v9.3 支持了一些新的 JavaScript 特性,包括私有字段和方法、可选链操作符和空值合并运算符。这些新特性可以使代码更简洁和更易读。

Object.hasOwn 作为 Object.prototype 的新成员

Object.hasOwn 方法是 JavaScript 中一个新的方法,它可以检查一个对象是否拥有一个指定的属性。Object.hasOwn 方法与 Object.prototype.hasOwnProperty 方法类似,但它不检查继承的属性。

Object.hasOwn 方法的语法如下:

Object.hasOwn(obj, prop)

其中,

  • obj 是要检查的对象。
  • prop 是要检查的属性。

Object.hasOwn 方法返回一个布尔值,如果对象拥有指定的属性,则返回 true,否则返回 false。

例如,以下代码检查对象 obj 是否拥有属性 prop:

const obj = {
  name: 'John Doe',
  age: 30
};

console.log(Object.hasOwn(obj, 'name')); // true
console.log(Object.hasOwn(obj, 'age')); // true
console.log(Object.hasOwn(obj, 'gender')); // false

Object.hasOwn 方法可以用于各种场景,例如:

  • 检查对象是否拥有一个指定的属性。
  • 遍历对象的属性。
  • 删除对象的属性。
  • 复制对象的属性到另一个对象。

TypeScript 4.4 发布:类型推断和错误处理的增强

TypeScript 4.4 是 TypeScript 的一个新版本,它于 2021 年 8 月 16 日发布。TypeScript 4.4 带来了许多新的特性和改进,包括改进的类型推断、更好的错误处理和新的语言特性。

TypeScript 4.4 的主要改进包括:

  • 改进的类型推断:TypeScript 4.4 的类型推断能力得到了改进,这使得它能够更好地推断出变量和表达式的类型。这可以提高代码的性能和可读性。
  • 更好的错误处理:TypeScript 4.4 的错误处理能力得到了改进,这使得它能够更好地报告错误并提供更详细的错误信息。这可以帮助开发人员更快地找到并修复错误。
  • 新的语言特性:TypeScript 4.4 支持了一些新的语言特性,包括模板字面量类型、元组类型和联合类型。这些新特性可以使代码更简洁和更易读。

WebAssembly 2.0 草案发布:引入新的功能和改进

WebAssembly 2.0 是 WebAssembly 的一个新版本,它于 2021 年 8 月 16 日发布。WebAssembly 2.0 引入了许多新的功能和改进,包括新的指令、新的数据类型和新的 API。

WebAssembly 2.0 的主要改进包括:

  • 新的指令:WebAssembly 2.0 引入了许多新的指令,这些指令可以提高代码的性能和可读性。例如,WebAssembly 2.0 引入了新的 SIMD 指令,这些指令可以用于并行处理数据。
  • 新的数据类型:WebAssembly 2.0 引入了新的数据类型,这些数据类型可以更好地表示不同的数据。例如,WebAssembly 2.0 引入了新的浮点数类型,这些浮点数类型可以表示更大的数字。
  • 新的 API:WebAssembly 2.0 引入了新的 API,这些 API 可以使 WebAssembly 代码与 JavaScript 代码更好地交互。例如,WebAssembly 2.0 引入了新的 JavaScript API,这些 API 可以使 JavaScript 代码调用 WebAssembly 函数。

Rust 1.56 发布:改进编译器和标准库

Rust 1.56 是 Rust 的一个新版本,它于 2021 年 8 月 16 日发布。Rust 1.56 带来了许多新的特性和改进,包括改进的编译器、更好的标准库和新的语言特性。

Rust 1.56 的主要改进包括:

  • 改进的编译器:Rust 1.56 的编译器得到了改进,这使得它能够生成更快的代码。此外,Rust 1.56 的编译器还改进了错误处理,这使得它能够更好地报告错误并提供更详细的错误信息。
  • 更好的标准库:Rust 1.56 的标准库得到了改进,这使得它提供了更多的函数和类型。此外,Rust 1.56 的标准库还改进了文档,这使得它更容易使用。
  • 新的语言特性:Rust 1.56 支持了一些新的语言特性,包括模式匹配、枚举和结构体。这些新特性可以使代码更简洁和更易读。