接口,本身只是种约定,向来只是声明,没有实现……可是 Java 和 C# 相继推出了“接口默认方法”的概念,让接口从纯粹的抽象变得有血有肉。接口的默认方法是什么鬼,接口还是接口吗?—— 这是 2020 年“边城客栈”的第一...
数组去重,就是在数组中查找相同的元素,保留其中一个,去除其他元素的程。从这句话揭示了数组去重的两个关键因素:找到重复项去除重复项本文告诉你在遇到去重问题时该如何思考,并以 JavaScript 为例,进行详细...
我们在处理数据时,常常会遇到某项数据,或者属性是 undefined,从而引起中断性错误,造成数据处理失败。解决这一问题最直接的办法就是在使用前判断是否 undefined ,但是如果每一个数据使用前都进行判断,非常繁...
A closure is the combination of a function bundled together (enclosed) with references to its surrounding state (the lexical environment).
JavaScript 使用了基于原型模式的 OOP 实现,一直以来,其封装性都不太友好。为此,TypeScript 在对 JavaScript 类型进行增强的同时,特别关注了“类”定义。TS 的类定义起来更接近于 Java 和 C# 的语法,还允许使...
最近有朋友在使劲研究如何不使用 HTTPS 的情况下保护用户密码安全。暂且不说研究过程,但结论是要保障安全必须后端参与,使用非对称加密算法 —— 如此一来,不如直接用 HTTPS 更简单便捷有保障。使用免费 SSL 证书...
前后端分离开发实践了很久了,前两天需要把一个项目上线,准备 SSL 证书时发现,居然需要申请 3 个证书(1 年期免费的证书只能对单个子域名申请),这 3 个域名是:
最近几篇文章都跟微信小程序开发有关,所以有人就问:“小程序不懂啊,能不能写点别的?”。其实不用太在意“小程序”这件事情,因为“小程序”在文章中只是一个开发场景,我们实际解决的问题并非只在小程序中才会遇到...
首先,最直观的问题:缩进太深。缩进最深的地方是 24 个空格,也就是 6 层。一般我们认为 3 层以内的缩进比较容易阅读,超过 3 层应该考虑使用“Extract Method”方法进行重构。
上回写到: 没看上回的同学,在这里:在微信小程序中使用 async/await {代码...} {代码...} 这不已经封装过了吗? 这回写的是不一样的封装。因为,一个小程序里要写好多个 toAsync 调用,真的很烦呐! 能不能一次...
工欲善其事,必先利其器。软件开发者不仅需要提升自己的软实力,也需要找到趁手的工具。今天要介绍的主角是 Visual Studio Code,简称 VSCode,来自微软。
微信小程序中有大量接口是异步调用,比如 wx.login()、wx.request()、wx.getUserInfo() 等,都是使用一个对象作为参数,并定义了 success()、fail() 和 complete() 作为异步调用不同情况下的回调。
接口之所以成为接口,就在于它没有实现,只是声明。但后来一切都变了,Java 里出现了默认方法,C# 也出现了默认方法。接口已经不像传统意义上的接口,其概念开始向抽象类靠近,一个纯抽象的东西,突然出现了实体...
笔者在 Asp.Net MVC 插件化开发简化方案 研究了基于 .NET Framework 的 ASP.NET 插件化开发之后,又在 ASP.NET Core 2.0 下进行插件化开发 中研究了基于 ASP.NET Core 2.0 的插件化开发,以及在 ASP.NET Core 2.0...
写文档、写博客难免需要绘图,笔者在前端时间写专栏《JavaScript 全栈工程师养成记》 的时候,就使用了大量的绘图工具来绘制插图,受到读者们的要求和鼓励,决定将自己使用的绘图工具和方法展示出来,供大家参考...
Vue 中需要输入什么内容的时候,自然会想到使用 <input v-model="xxx" /> 的方式来实现双向绑定。下面是一个最简单的示例
TypeScript 为 JavaScript 带来静态类型检查,让 JavaScript 编写中大型应用的时候可以应用工具来避免部分错误。
我在《JavaScript 全栈工程师养成记》中基于 JavaScript 介绍了较为完整的软件开发知识,却没有提及日常使用的各种工具。我使用的工具集中大部分都会与编程相关,今天跟大家分享一些用于分享代码的在线工具。因为...
Class field declarations for JavaScript(JavaScript 类的字段声明)目前已经进入了 stage-3,其中包含一项 OOP 开发者都很关注的内容:Private fields。JavaScript 一直没有私有成员并不是没有原因,所以这一...
虽然我们生活在一个异步的世界里,但对于多数编程初学者来说,异步还是很陌生。学习一门编程语言,通常都是从同步流程开始的,即顺序、分支和循环。而异步流程是什么呢——开始一个异步调用,然后……就没有然后了。...
从事软件开发 20 年,在软件分析、设计、架构、...