经验分享

如何在JavaScript里面mock时区?

在做JavaScript测试的时候,如果我们的代码里有用到日期,那么可能在某些情况下会导致测试不能稳定跑。比如:对包含日期显示的UI做了Snapshot测试,但是测试代码可能会在本地、远程服务器等环境跑,时区却不一样。这种情况下,我们就希望执行测试的时候,代码获取的是一个固定的时区,而不是运行电脑设置的时区。我找了一些资料,发现有一些办法:1. 使用环境变量来设置Node.js代码的时区。可以使用...

如何用JavaScript爬取一个网页?

爬取一个网页是一个网络爬虫的一个最基本的操作,那么如何用JavaScript来实现这个呢?简单来说,爬取一个网页,需要以下三步:1. 根据URL下载一个网页我们使用axios库来下载我们的网页。Axios是一个非常简单易用、符合标准,又支持Promise的一个HTTP客户端的库,因此用它来开始我们的示例非常容易。在上面的例子里,我们实现了一个downloadUrl()函数,这个函数会下载通过参数u...

如何解决Hapi.js因为第三方cookie导致的400错误?

网站使用百度统计的时候,如果访问了百度站长平台,等和百度有关的网站,那么可能会导致cookie里面被加入了一些重复或者不规范的cookie。这时候,使用Hapi.js的网站就会报400错误的页面:{"statusCode":400,"error":"Bad Request","message":"Invalid cookie value"}如果出现这个问题,如何解决?问题原因是Hapi.js对这种...

如何在Chrome里获得console.timeEnd()的值?

在写上一篇示例代码《如何在JavaScript里拼接字符串?》的时候,我想让最后一个例子里的代码里console.timeEnd()的值能够在运行结果框里面显示,但是却无法找到解决的办法。因此,专门想一下如何解决这个问题,网上搜索了一下,建议是这样的:使用window.performance.now()来计时,代码可以这么写:这样做,实际上是不再用console.time()/console.ti...

如何在JavaScript里拼接字符串?

如果你有Java或其他语言的编程经验,那么可能会疑惑,在JavaScript里,没有StringBuilder之类的类或对象可以用,那么如何拼接字符串才是高效的呢?一般来讲,JavaScript里拼接字符串有4种方式:1. 使用+运算符来拼接这种方式比较常见,用+将字符串连起来,得到一个新的字符串。这种方法,可能许多编程老手会说有性能问题,理由是字符串是不可变的,因此每次拼接操作都会重新创建一个新...

仅对UI做快照测试(Snapshot Testing)的问题

快照测试做起来轻松便捷,因此在写前端单元测试的时候,这肯定是一个考虑的一项,但是我们能把快照测试作为主要的测试手段吗?在遗留系统中工作时,为了保证系统继续运行且不破坏遗留代码功能,快照测试的价值是不可否认的。然而,我们看到了使用 仅快照测试 作为主要测试机制这种常见但有害的做法。快照测试可以验证组件在 DOM 中生成的确切结果,但不能验证组件的行为。 因此,它可能是脆弱且不可靠的,还会催生“仅删除...

2020年面向Web应用的最值得关注的Node.js框架

在2020年,越来越多的企业为了给用户提供更好的体验,用更好、更快的技术通过web应用程序来为用户提供服务。后端技术的选择也很多,Java、C#、Go等语言都是不错的选择,根据Node.js用户调查报告,在5个后端或全栈开发人员中,就有4个将Node.js框架作为首选的后端技术。虽然这个报告的结论可能比较偏颇,但也能证明Node.js的确是一种比较受欢迎的一个选择。如果选择了Node.js,我们仍...

2020年React Redux的5种可替代品

Redux实际上是一个和视图层无关的一个库,因此Redux已成为使用React,Vue或Angular作为前端框架的大多数应用程序的流行的状态管理解决方案。Redux受欢迎的主要原因之一是其轻巧,压缩后的大小只有2KB左右。在前端,轻量意味着加载更快、执行也更快。Redux的简单原则是将应用程序的整个状态存储在一个中央存储(Store)中。所有组件都可以访问该存储,因此无需在组件之间传递参数和属性...

web前端开发值得学习吗?

Web前端开发在几年前,通常是计算机专业学生看不上的一项技能,不就是写一些HTML/CSS嘛,有什么难的,还不如C++、Java等后端语言有发展前途。不过随着技术的不断演变和发展,前端开发的职责也开始涉及到越来越多原本是后端开发的职责,因此大家对前端开发的印象开始逐步的改观。不过,即使这样,前端开发可能在大多数眼里还是不如后端开发有前途:对自己技术深度提升有限、职业发展天花板低,等等,都是前端不好...

JavaScript中的变量声明:const

除了前面我们讨论的用var和let来声明变量,ES6还引入了const关键字来声明所有类型的数据的变量,例如布尔值,对象,整数等。const:用const声明的变量,需要在声明时进行初始化。不能再次声明相同的变量。不能对变量再次赋值。声明了一个块作用域变量。1. 语法用const声明的变量不能像var或let在任意的地方初始化,而是需要在声明时进行初始化。2. 不能重新声明和赋值使用const我们...

最新课程

Chrome开发者工具教程

Chrome DevTools的简明教程

初级
免费
JSON简明教程

JSON格式的简明教程

初级
免费
编程概念

面向新程序员的简短教程

初级
免费
初级
免费
JavaScript教程

介绍基础的JavaScript知识,学习用JavaScript进行编程

初级
免费
编程入门导引

帮编程初学者解决方向上的疑惑

初级
免费
HTML/CSS精简教程与实例

面向初学者的HTML5和CSS的教程

初级
免费
Git使用简明教程

快速学习Git进行高效的代码管理

初级
免费
Python 2语言教程

学会用Python语言来编程

初级
免费
程序员面试指南

为找到理想的工作,做好完善的准备

中级
免费