经验分享

如何在Ubuntu里面升级Git

当前Git最新的版本已经是2.34.1,但是我的Ubuntu 18.04.2 LTS系统里的Git版本是2.17.1,由于更新版本的Git更加安全,因此还是有必要升一下。Ubuntu默认的安装包仓库里的版本只是2.17.1,所以直接通过sudo apt install git来安装,是不会安装到最新的版本的。为了达到目的,我们可以用Git团队为Ubuntu用户开发的一个PPA (Personal ...

JavaScript里面如何快速生成乘法口诀练习题?

问题的背景是这样的:我希望每天能够给小孩出一份乘法口诀的练习题,题目的顺序每天都不重复。作为程序员,肯定是不愿意手动去一道道出题的,那么写程序去生成这些题目是必须的。生成题目简单,二重循环就可以,但是把题目随机排序,有没有简单的办法?在JavaScript里面,对于数组里面的元素,我们可以使用Array.prototype.sort()来对数组的内容进行排序。使用这个方法,我们可以按照数据的值或属...

在用Jest测试React组件时,如何支持<canvas>元素

用Jest做JavaScript单元测试是个不错的选择,在Jest的基础上,用@testing-library/react是锦上添花的方法。React Testing Library提供了render() API,可以用这个API在jsdom里渲染React的组件。jsdom是一个模拟的浏览器里的JS运行时,实现了很多重要的web标准,比如DOM和HTML。但是在运行涉及到canvas的元素测试的...

如何用HTML5的canvas里面画图?

在HTML里画一些简单的图的时候,有时候我们并不需要像HighCharts这样重量级的画图库。在HTML5的canvas里面画一些简单的图并不难。从一个最简单的例子看起:运行代码,可以看到我们很容易在canvas里面画了一个方框:方框的起始位置是(20, 20),宽度和高度分别是150和100。有了这个基础,我们可以再画一个简单的柱状图(点“运行”按钮来查看运行结果):这样,一个简单的柱状图就画好...

HTTP header里的X-Real-IP和X-Forwarded-For的区别

在HTTP的请求header里,我们经常可以看到类似这样的内容: 如果要取客户端的IP地址,如何取才对?X-Forwarded-For (XFF) 在客户端访问服务器的过程中如果需要经过HTTP代理或者负载均衡服务器,可以被用来获取最初发起请求的客户端的IP地址,这个消息首部成为事实上的标准。在消息流从客户端流向服务器的过程中被拦截的情况下,服务器端的访问日志只能记录代理服务器或者负载均衡服务器...

JavaScript里如何根据条件为对象赋值

在JavaScript里,我们有时候需要根据一些条件给一个变量赋值,比如,当value是有值的时候,要显示这个值,没有值的时候,显示"--"。勤快人的做法:代码写的好长啊,看起来有点累,有没有简单点的写法?让我们看看懒人的写法吧。懒人的做法:在这里,用三目运算符(ternary operator),可以只用一行代码就达到上面多行代码就能达到的效果,太好了!不过,上面的这个场景,三目运算符的条件判断...

JavaScript里如何避免使用可能为null对象的属性

在JavaScript里,访问一个外面传入的对象的属性前,先判断这个对象是否为null或者undefined会是个很好的习惯。勤快人的写法一看这个代码,就知道写代码的人很严谨,为了获取city,把整个属性链上的对象都判断了一下是否为空,可以有效地防止程序出错。有点懒的人的写法但是,上面的写法有点要人太勤快了点,要敲好多代码来判断,并且一堆的if语句,看着不怎么爽。那怎么省事呢?我有lodash啊!...

如何增加Node.js的运行时内存限制

Node.js的代码在运行的时候,默认情况下最大能用的内存空间大概是1.4GB左右。也就是说,哪怕你的机器有更多的内容,比如说32GB,那么Node.js也只会用到1.4GB。从实际的情况来看,即使用到了1.4GB,那么NodeJS的进程也不一定会崩溃,可能到接2GB的时候才会崩溃,但是从内存占用超过1.4GB之后,进程的响应时间就开始增大了,结果也可能会出错FATAL ERROR: CALL_A...

如何在Node.js里获取用户的IP地址

在Node.js的request对象里,客户端的IP地址可能会存在多个不同的地方,比如,可能在HTTP header的x-forwarded-for,或者其他的一些地方如request.connection, request.socket, request.info, 或者request.raw。自己写代码,这不是一个复杂的事情,但是还是尽量避免自己去重复造轮子。NPM仓库里有一些针对的模块,比如...

乐码范支持不登录就能添加反应了

细心的乐码范用户,可以早已发现每篇文章的下面有这样一个按钮:但是,如果没登录的时候,这个按钮点了没有反应。访问乐码范的用户,也就是想看点东西而已,很多用户是不想注册账户再登录的。因此,这个功能基本上就成了摆设,没什么用。今天,这个功能终于可以免登录使用了。当然,如果只是宣布一个功能,那其实也没啥好说的,因为也没什么大不了的。更多是想总结一下背后产品和技术角度的一些思考。1. 为什么有这个功能?相比...

最新课程

Chrome开发者工具教程

Chrome DevTools的简明教程

初级
免费
JSON简明教程

JSON格式的简明教程

初级
免费
编程概念

面向新程序员的简短教程

初级
免费
初级
免费
JavaScript教程

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

初级
免费
编程入门导引

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

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

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

初级
免费
Git使用简明教程

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

初级
免费
Python 2语言教程

学会用Python语言来编程

初级
免费
程序员面试指南

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

中级
免费