视野修炼-技术周刊第87期 | Nodejs 15 周年

news/2024/10/8 6:20:09

欢迎来到第 87 期的【视野修炼 - 技术周刊】,下面是本期的精选内容简介

🔥强烈推荐

  1. js 中的经典八股
  2. merge-anything - 深度合并对象的库
  3. DOM 树深度对渲染性能的影响

🔧开源工具&技术资讯

  1. Node.js 15周年
  2. 页面元素测量工具
  3. Best Cookier - cookie管理插件
  4. ShotEasy - 在线的图片压缩

📚 教程&文章

  1. 2024 应该了解的 Node.js 特性
  2. CSS 长度单位介绍 - 非常全面的指南
  3. 仅使用CSS实现计时器

​也推荐大家关注一下最后的推荐内容(周刊的主要内容来源渠道)

下面开始本期内容的介绍,预计阅读时间 8 分钟。

🔥强烈推荐

1. js 中的经典八股

Number.parseInt(0.0000005) === 5 // true
Number.NaN === Number.NaN // false(() => {try {return 1}finally {return 2}
})() === 2 // trueMath.max() < Math.min() // true

好奇结果为什么会是这样?可以看看这篇文章,很多经典的问题 👍🏻。

2. merge-anything - 深度合并对象的库

使用示例

import { merge } from 'merge-anything'const starter = { name: 'Squirtle', types: { water: true } }
const newValues = { name: 'Wartortle', types: { fighting: true }, level: 16 }const evolution = merge(starter, newValues, { is: 'cool' })
// returns {
//   name: 'Wartortle',
//   types: { water: true, fighting: true },
//   level: 16,
//   is: 'cool'
// }

完整的 TS 类型支持。

import type { Merge } from 'merge-anything'interface A1 { name: string }
interface A2 { types: { water: boolean } }
interface A3 { types: { fighting: boolean } }type Result = Merge<A1, [A2, A3]>

作者还有很多其它好用的小工具项目。

收藏起来,一定有机会用得上这个。

3. DOM 树深度对渲染性能的影响

作者在使用 lighthouse 分析网页性能时发现了这个警告。

然后开始了影响的探究,下面是它的测试结论,GitHub: 测试代码。

作者的测试机器 Mac M1,CPU速度降低4倍。

下面时设置 CPU 降速的位置。

有额外的样式场景下,DOM重新计算耗时有明显的页面卡顿。

最后作者的大概的结论是:避免有附加样式且过深的嵌套

🔧开源工具&技术资讯

4. Node.js 15周年

时间过得真快,印象中 14 周年才过没多久。

5. 页面元素测量工具

一个 chrome 插件,可以测量 WEB 页面元素的尺寸信息。

部分大公司是会有专门的UI走查工具给设计同学验收页面使用。

笔者很久之前也做过类似的工具,效果差不多。

6. Best Cookier - cookie管理插件

可以便捷的增、删、改、查,非 http-only 的 cookie,支持便捷的导入导出,变化监听。

7. ShotEasy - 在线的图片压缩

没有细看效果,可以先收藏,有需要的时候拿出来用用。

📚 教程&文章

8. 2024 应该了解的 Node.js 特性

文章展示了 Node.js v21 已经开箱即用的一些新特性。

① 测试相关:内置 assert, test, mock 模块搭配使用,内置测试覆盖率。

import assert from 'node:assert'
import fs from 'node:fs/promises'
import { describe, mock, test } from 'node:test'
import { loadEnv } from '../src/dotenv.js'describe('dotenv test suite', () => {test('should load env file', async () => {const mockImplementation = async (path) => {return 'PORT=3000\n'}const mockedReadFile = mock.method(fs, 'readFile', mockImplementation)const env = await loadEnv('.env')assert.strictEqual(env.PORT, '3000')})
})
{"scripts": {"test": "node --test ./tests","test:coverage": "node --experimental-coverage --test ./tests"}
}

② node watch

node --watch app.js

可以平替 nodemon

③ 读取 .env 文件中的环境变量

node --env-file=./.env.default --env-file=./.env.development index.js

④ 定时器 Promise

const {setTimeout,
} = require('node:timers/promises')setTimeout(2000, 'Two seconds later...').then((res) => {console.log(res)
})console.log('Taking a break...')

9. CSS 长度单位介绍 - 非常全面的指南

10. 仅使用CSS实现计时器

😛趣图


篇幅有限,如果你还没看够,可移步后面的推荐渠道,继续游览,历史周刊(<20)移步博客

⭐️强力推荐关注

  • 阮一峰: 科技爱好者周刊 - 记录每周值得分享的科技内容,周五发布
  • 云谦:MDH 前端周刊 - 前端资讯和分享
    s* 前端RSS - 根据 RSS 订阅源抓取最新前端技术文章
  • 值得一读技术博客 - 每天进步一点点,每天分享有料的技术文章!
  • FRE123 技术周刊精选 - 前后端技术周刊精选推荐信息流

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hjln.cn/news/42605.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

Diffusion模型

参数说明 beta_schedule = np.linspace(0.0001, 0.02, 1000) # 示例 beta schedulealpha_hat = np.cumprod(1 - beta_schedule) # 计算 alpha_hat具体例子 让我们通过一个具体的例子展示如何计算 Beta Schedule 和 Alpha_hat: import numpy as np# 定义 Beta Schedule beta_…

NSCC集群使用笔记

1. 账号申请 如果是 NUS,NTU 或者 ASTAR 的学生,可以直接用自己的学校 ID 登录。登录不上的话可以发邮件联系 nscc 工作人员即可,基本上第二天就会回复解决。 2. VSCode 连接 账号申请下来后进官网设置你的 ssh key 之类的东西就可以登录了。第一次登录成功后,可以参考这篇…

OOP4-6作业总结性Blog

这三次大作业经历了一次题型的更新,不管过程是怎么说的,结果是试卷批改程序退出出题的视野了,取而代之的是电路设计题。对于电路设计题我认为出的更加合理些,不像试卷批改题难点都在写正则表达式上,多了对类间关系的考察。 这三次题目集期间,我们在课上主要学习了一系列设…

.NET借助虚拟网卡实现一个简单异地组网工具

由于工作需要,经常需要远程客户的服务器,但是并不是所有服务器都能开外网端口,使用向日葵等软件终究还是不太方便,于是找了很多工具,包括zerotier 等,但是由于服务器在国外等有时候还不同, 于是开始自己想办法研究一个属于自己的组网工具,最后找到snltty大佬的 https:/…

BUUCTF-Misc(131-140)

[ACTF新生赛2020]剑龙 打开pwd.txt发现是颜文字然后打开随波逐流,AAencode颜文字解密得到welcom3! 看一下这个图片的详细信息,发现然后用颜文字结出来的那个密码,去steghide解密U2FsdGVkX1/7KeHVl5984OsGUVSanPfPednHpK9lKvp0kdrxO4Tj/Q==又是U2f然后这次我还以为是AES加密,…

2024-06-09 闲话

2024-06-09 闲话看老友记看到这里。 诶这个名字好熟悉,诶这个小人物也好熟悉。 诶 Bidirectional Encoder Representations from transformers 也是 BERT 诶我草,这是芝麻街。

[AI资讯0609] SamAltman建立了庞大投资帝国,通义千问Qwen2发布即爆火,OpenAI泄密者公布165页文件,奥特曼百万年薪挖角谷歌TPU人才……

SamAltman建立了庞大投资帝国,但不持OpenAI股票;个人资产包括房产和多家公司股权。他曾在YCombinator担任总裁,并投资40家公司,有五家估值增长100倍以上。尽管他不参与OpenAI决策,但其利益与公司业务存在复杂关系,引发监督和透明度争议……AI资讯奥特曼28亿「投资帝国」曝…

oop 4~6总结

oop 4~6总结 前言知识点继承:第四次作业中新增的ChoiceQuestion和GapFillingQuestion继承Question类;第五次作业中Switch, SteppedSpeedController, ContinuousSpeedController, IncandescentLamp, FluorescentLamp, 和 CeilingFan 都继承Device 类,从而共享其属性和方法。 …