头图

SegmentFault 思否技术周刊 Vol.73 — 如何有效地学习 JavaScript ?

本期技术周刊一起了解 Javascript,欢迎大家阅读 ~

文章推荐

手写一个同步服务端时间的小工具 // jump__jump

在前端开发的过程中,开发者经常会用到 new Date() 来获取当前时间,但是 new Date() 是获取的当前操作系统的时间,由于用户可以修改当前电脑时间,所以它是不准确的。

大部分情况下,用户修改当前电脑时间都没有什么问题,但是当我们需要根据服务端传递的数据时间与当前时间进行计算时,前端展示就会出错。同时,需要过期时间的数据(时间)存入前端缓存( localStorage, IndexedDB )中也是会出现问题。

这时候我们考虑使用服务器提供的时间,而不是前端时间。服务器每次进行数据交互时都会在响应头提供时间数据。我们可以通过该数据修正前端时间。

JavaScript 进阶之路 --- 《手写“回调地狱”》 // FFF方

我相信有很多学习前端的小伙伴百分百遇到过这样的面试题:

---“为什么我们要用 Promise 去代替传统的回调函数?”

我相信有很多人都可以随口回答出:“为了避免回调地狱,因为回调地狱会带来xxx的后果....”

ok,那么现在我问你,假设现在面试官让你实现一个 “回调地狱”。你脑子里的代码会是怎样的呢?我建议你停下来思考三分钟🤔...

不要问为什么有这么令人无语的问题,因为这就是我实实在在的面试题之一。起初我觉得面试官在刁难我,然而当我真正理解了这个知识点以后,我非常感谢那位面试官,在去研究这个面试题答案的过程中,让我对 JS 有了更深层次的理解...所以在手写 Promise 之前,我希望你能先完成手写 回调地狱。

JavaScript 判断数组的方法总结,哪种最靠谱? // 前端阿飞

无论在工作还是面试中,我们都会遇到判断一个数据是否为数组的需求,今天我们就来总结一下,到底有多少方法可以判断数组,看看哪种方法是最好用、最靠谱的。

我们可以从构造函数、原型对象、Object 的原型对象三个角度来进行判断!

常见 JavaScript 设计模式 — 原来这么简单 // 熊的猫

设计模式总共有 23 种,但在前端领域其实没必要全部都去学习,毕竟大部分的设计模式是在 JavaScript 中占的比重并不是那么大,本文会列举出一些 JavaScript 常见的、容易被忽视的设计模式,不过还是有必要先简单了解一下设计模式相关的概念。

先举个形象的例子,比如现在正在考试而且恰好在考数学,实际上每道数学题目都对应着一种或多种解决公式(如和三角形相关的勾股定理),而这些解决公式是经过数学家研究、推导、总结好的,我们只需要把题目和已有公式对应上就很容易解决问题,而设计模式也是如此,只不过是它是相对于软件设计领域而言的。

设计模式(Design pattern) 是一套被反复使用、经过分类、代码设计经验的总结,简单来说设计模式就是为了解决,软件设计领域,不同场景下相应问题的,解决方案。

JavaScript 学习笔记(一) promise 和 async/wait // 北冥有只鱼

JavaScript 也有异步任务,如果我们想协调异步任务,就可以选择使用 Promise,当前的我们只有一个异步任务,我们希望在异步任务回调,那么可以在用 Promise.then,如果你想关注错误结果,那么可以用 catch,如果你想在任务完成之后做一些清理工作,那么可以用 Promise 的 finally。
现在我们将异步任务的数目提升,提升到三个,如果我们想再这三个任务完成之后触发一些操作,那么我们可以用 Promise.all,但是但 Promise.all 的缺陷在于,一个任务失败之后,我们看不到成功任务的结果,如果任务成功与失败的结果,那么就可以用 Promise.allSettled。但有的时候我们也指向关注“第一名”,那就用 Promise.race,但有的时候我们也只想要没犯规的第一名,这也就是 Promise.any。有的时候我们也不想用 then 回调的这种方式,这写起来可能有点烦,那就可以用 async/await 。

问答推荐

关于 JavaScript 的问题,还有未解决的,欢迎正在阅读的小伙伴们一起来解决!


# SegmentFault 技术周刊 #

「技术周刊」是社区特别推出的技术内容系列,一周一主题。

每周二更新,欢迎「关注」。大家也可以在评论处留言自己感兴趣的主题,推荐主题相关的优秀文章。

如有问题可以添加小姐姐微信~

image.png


SegmentFault_社区周刊
主题技术周刊,每周分享新鲜有趣的技术干货。
avatar
Beverly
SegmentFault 思否社区打工人

怂人面前全是坑,努力填坑 。

851 声望
2.1k 粉丝
0 条评论
推荐阅读
SegmentFault 思否技术周刊 Vol.80 — 玩转新时代前端构建工具
Vite 提供了一套原生 ESM 的 HMR API。 具有 HMR 功能的框架可以利用该 API 提供即时、准确的更新,而无需重新加载页面或清除应用程序状态。Vite 内置了 HMR 到 Vue.js 单文件组件(SFC)和 React Fast Refresh 中。

Beverly5阅读 1.3k

封面图
正则表达式实例
收集在业务中经常使用的正则表达式实例,方便以后进行查找,减少工作量。常用正则表达式实例1. 校验基本日期格式 {代码...} {代码...} 2. 校验密码强度密码的强度必须是包含大小写字母和数字的组合,不能使用特殊...

寒青56阅读 8.5k评论 11

JavaScript有用的代码片段和trick
平时工作过程中可以用到的实用代码集棉。判断对象否为空 {代码...} 浮点数取整 {代码...} 注意:前三种方法只适用于32个位整数,对于负数的处理上和Math.floor是不同的。 {代码...} 生成6位数字验证码 {代码...} ...

jenemy48阅读 7.1k评论 12

从零搭建 Node.js 企业级 Web 服务器(十五):总结与展望
总结截止到本章 “从零搭建 Node.js 企业级 Web 服务器” 主题共计 16 章内容就更新完毕了,回顾第零章曾写道:搭建一个 Node.js 企业级 Web 服务器并非难事,只是必须做好几个关键事项这几件必须做好的关键事项就...

乌柏木75阅读 7.1k评论 16

再也不学AJAX了!(二)使用AJAX ① XMLHttpRequest
「再也不学 AJAX 了」是一个以 AJAX 为主题的系列文章,希望读者通过阅读本系列文章,能够对 AJAX 技术有更加深入的认识和理解,从此能够再也不用专门学习 AJAX。本篇文章为该系列的第二篇,最近更新于 2023 年 1...

libinfs42阅读 6.8k评论 12

封面图
从零搭建 Node.js 企业级 Web 服务器(一):接口与分层
分层规范从本章起,正式进入企业级 Web 服务器核心内容。通常,一块完整的业务逻辑是由视图层、控制层、服务层、模型层共同定义与实现的,如下图:从上至下,抽象层次逐渐加深。从下至上,业务细节逐渐清晰。视图...

乌柏木45阅读 8.6k评论 6

从零搭建 Node.js 企业级 Web 服务器(二):校验
校验就是对输入条件的约束,避免无效的输入引起异常。Web 系统的用户输入主要为编辑与提交各类表单,一方面校验要做在编辑表单字段与提交的时候,另一方面接收表单的接口也要做足校验行为,通过前后端共同控制输...

乌柏木35阅读 6.7k评论 10

avatar
Beverly
SegmentFault 思否社区打工人

怂人面前全是坑,努力填坑 。

851 声望
2.1k 粉丝
宣传栏