经验分享

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. 为什么有这个功能?相比...

如何让用纯CSS来做头部固定,内容区域滑动的页面布局?

网页的头部固定,内容区域有scrollbar的布局比较常见。这个布局的核心是要scrollbar只出现在内容所在的框里,整个页面的高度是和浏览器的高度一样的。在这个例子里,比较重要的是要固定网页最外层的div的高度。我们用height: 100vh;来确保外层的高度,然后内层就可以依据这个高度来布局了。

如何在Windows 10的本地nginx的localshot环境上启用HTTPS

Nginx已经可以支持Windows了,这对于在Windows上开发的程序员来说,是个不错的消息。nginx的各个版本的下载地址:http://nginx.org/en/download.html如果我们想在本地的nginx上支持HTTPS,仅仅是为了开发和调试的需要,这时候肯定不会去想花钱去申请第三方的SSL证书,那该怎么做呢?不难,按照下面这几步来:Install OpenSSL这个步骤我们有...

今天遇到TLS connection was non-properly terminated的错误

今天在Ubuntu虚拟机上从Github上拉代码,但是频繁遇到这样一个错误:gnutls_handshake() failed: The TLS connection was non-properly terminated.从网上查解决办法,很多文章都指向proxy配置的问题,但是通过这个命令git config -l来查看,我的环境下并未给Git配置网络代理,因此不是proxy的原因。从错误原因...

如何在Mobx里实现一个异步的action?

使用Mobx的时候,store里的状态的改变,默认情况下,必须经过action来操作,这可以让状态修改的操作在代码里面更加明确,也可以更好地组织代码。对于普通同步的action,这个参考最简单的Mobx例子就可以了。但是对于异步的action,这点需要留意一下。如果是用Promise,那么then()函数里传入的应该是一个action;如果是用async/await, await之后的代码在运行时...

Jest的VSCode 插件

VSCode的扩展里面有不少很好的Jest插件。在VSCode的扩展里面搜jest,就会看到安装下载最多的那些插件。比如:这些插件里面,尤其是前两个值得考虑一用。Jest这个是Facebook官方的插件,功能最强大,有这些功能:打开项目时,Jest会自动跑所有的测试。内联显示单个失败/通过。在问题检查器中显示失败的测试。突出显示expect函数旁边的错误。为快照文件添加语法高亮。失败快照的一键更新...

escape/encodeURI/encodeURIComponent的区别?

JavaScirpt里有三个用来转义字符串的函数:escape、encodeURI和encodeURIComponent。记住这几个函数的区别不是那么容易,因此这篇文章来总结一下:escape能够把大多数英文标点符号替换成对应的十六进制字符,但是面对UNICODE字符的时候,就不是那么够用了,这时候要考虑用encodeURI。encodeURIComponent是encodeURI的一个扩展,区别...

最新课程

Chrome开发者工具教程

Chrome DevTools的简明教程

初级
免费
JSON简明教程

JSON格式的简明教程

初级
免费
编程概念

面向新程序员的简短教程

初级
免费
初级
免费
JavaScript教程

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

初级
免费
编程入门导引

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

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

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

初级
免费
Git使用简明教程

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

初级
免费
Python 2语言教程

学会用Python语言来编程

初级
免费
程序员面试指南

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

中级
免费