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

news/2025/1/18 16:08:35/文章来源:https://www.cnblogs.com/roseAT/p/18240054

欢迎来到第 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.hqwc.cn/news/722374.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

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 类,从而共享其属性和方法。 …

23201630徐弘-第二次blog作业

前言 本次大作业是前一次blog中前三次大作业的迭代,加一个新的两次迭代作业。 设计与分析 第四次大作业 第四次大作业比上一次作业增加了题目类型不同的迭代,通过增加选择题类和填空题类解决,两个都继承自题目信息类,所有信息(题目信息,试卷信息,答卷信息,学生信息 ,删…

国内 Github 访问优化

修改 Hosts(推荐) 1、下载SwitchHosts 下载地址: https://github.com/oldj/SwitchHosts 2、配置参考 Hosts 类型: Remote Hosts 标题: 随意 URL: https://raw.hellogithub.com/hosts 自动刷新: 最好选 1 小时 这样每次 hosts 有更新都能及时进行更新,免去手动更新。 如下截…

[JLU]校园网上网攻略汇总与补充

献给吉林通知大学的学弟、学妹、学长、学姐还有陆爻齐的JLU网络配置攻略,预感到两个月后会用,故现在更新前言 如题,陆爻齐为了汇集一下觉得比较有用的 JLU 校园网相关的资源,同时对于一些比较重要但比较少被提及的地方做点补充而写本文。 如果陆爻齐再次重装系统,或许也用…

Spring Boot入坑-10-Git

简介一个开源的分布式版本控制系统基于Git协议的代码托管平台主要有Github和Gitlab,国内的也有比如Gitee比较多的企业使用Gitlab构建自己的代码托管平台其主要作用是,对代码或文档进行版本化记录与控制主要概念工作区:个人电脑中能看到的项目的目录暂存区:数据暂时存放的区…

简单工厂模式( Simple Factory Pattern )

简单工厂模式(Simple Factory Pattern),在工厂类中对象决定创建出哪一种产品类的实例。这些产品类都实现了相同的接口,或者继承了相同的父类。 结构图Factory(工厂角色):它是核心,负责实现创建所有实例的内部逻辑。在工厂类中,提供了一个静态方法,可以直接被外界直接调…