博客
这里收集了我在技术、读书和生活里的长期记录。现在一共整理了 35 篇文章,慢慢看,不着急。
- 成长
触底之后:一个普通人如何重新拿回生活的主动权
当生活被生存压力裹挟,一个普通人如何在现实中一点点拿回时间、尊严与判断,重新获得对人生方向的主动权。
- JavaScript
JavaScript ASI 机制
分号对于编程语言来说不是必须的,比如对JavaScript来说,分号你可写可不写,而对于C#来说,没有分号无法通过编译。
- JavaScript
你不知道的 JavaScript 中卷(1、类型)
最近在读《你不知道的 JavaScript 中卷》,不会像上卷那样通篇仔细阅读一章一章的写博客了,因为我没那么多精力了。我每天花一点时间去写一些简单且篇幅不长的博客,这样在地铁或在电梯里花一分钟就可以读完。
- JavaScript
垃圾回收
JavaScript 的垃圾回收是自动进行的,一般情况下,无需开发者去手动 GC。
- C#
C# 中的查询
本文将介绍C#一种非常重要的数据处理方式——查询。例如我想筛选产品中大于10美元的产品,那么C#不同版本都是如何完成查询的呢?
- C#
C# 中的排序
排序是开发中非常常见的场景,我们在不同的C#版本该如何实现排序呢?本文通过讲解C# 1到C# 3不同的实现方案来帮助大家清晰的了解 C# 进化的过程。
- JavaScript
尾调用
尾调用(Tail Call)是函数式编程的一个重要概念,本身非常简单,一句话就能说清楚,就是指某个函数的最后一步是调用另一个函数。
- JavaScript
webpack-dev-server 使用教程
webpack-dev-server是我们在开发nodejs必须要掌握的工具,它可以帮助我们快速搭建开发环境。官网介绍如下
- C#
C# 学习笔记(1-19)—— 从起步、语言基础到进阶特性
将 C# 学习笔记(1)到(19)合并整理为一篇,串联 C# 与 .NET Framework、语言基础、类型系统、面向对象、泛型、委托、LINQ、多线程、异步与文件操作等核心主题。
- JavaScript
JavaScript插件化开发
这个是一个必然,因为我们要协作开发、代码重用
- C#
C#中数组、ArrayList和List的区别
在C#中,数组、ArrayList、List 能够存储一组对象,那么他们区别是什么呢?
- C#
C# 单例模式
单例模式(Singleton Pattern)是最简单的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。
- 环境搭建
搭建npm私有仓库——verdaccio
Verdaccio 是一个简单的、零配置要求的本地私有 npm 注册表。无需整个数据库即可开始!Verdaccio 开箱即用,带有自己的小型数据库,并且能够代理其他注册表(例如 npmjs.org),并在此过程中缓存下载的模块。对于那些希望扩展其存储功能的人,Verdaccio 支持各种社区制作的插件,以连接到服务,例如 Amazon 的
- JavaScript
混合设计“类”
类 / 继承描述了一种代码的组织结构形式 ,一种在软件中对真实世界中问题领域的建模方法。
- JavaScript
对象
我们熟知的对象创建方式:声明形式和构造形式
- JavaScript
闭包
当函数可以记住并访问所在的词法作用域,就产生了闭包,即使函数是在当前词法作用域之外执行的。
- JavaScript
提升
到现在,我们已经明白作用域的概念了,以及根据声明的位置和方式将变量分配给作用域的相关原理。函数作用域和块作用域的行为是一样的,可以总结为:任何声明在某个作用域内的变量,都将附属于这个作用域。 但是,作用域同其中的变量声明出现的位置有某种微妙的联系,而这个细节正是我们将要讨论的内容。
- JavaScript
函数作用域和块作用域
正如上一章讨论,作用域包含了一系列的“气泡”,每一个都可以作为容器,其中包含了标识符(变量、函数)的定义,这些气泡互相嵌套并且整齐地排列成蜂窝型,排列的结构是在写代码时定义的。
- JavaScript
词法作用域
作用域共有两种主要的工作模式,第一种最为普遍,被大多数编语言所采用的词法作用域,另一种叫做动态作用域,仍有一些编程语言在使用(Bash脚本、Perl中的一些模式等) 大多数标准语言编译器的第一个工作阶段叫作词法化(也叫单词化),词法化的过程会对源代码中的字符进行检查。词
- JavaScript
作用域
几乎所有编程语言最基本的功能之一,就是能够存储变量当中的值,并且能在之后对这个值进行访问或修改。那么变量存储在哪里,程序需要时怎么去找到它们?一套设计良好的规则来存储变量,并且之后可以方便地找到这些变量,这套规则就被称为作用域
- 软件工程
编程过程和规范
软件编程是一个复杂而迭代的工程,它不仅仅是编写代码,还应该包括代码审查、单元测
- 软件工程
软件工程概述
从软件的本质特性出发,回顾软件工程的产生与发展,梳理软件工程的基本概念,并讨论商业环境下的软件质量。
- Git
你必须要知道的git rebase
工作一年多,使用过的git命令一只手都数的过来
- JavaScript
灵活的语言
本篇博客包括后面的关于设计模式的博客均来源于《JavaScript设计模式》
- JavaScript
Constructor
CONSTRUCTOR 的作用 function
- JavaScript
JSON.stringify()
对于undefined、任意的函数以及symbol三个特殊
- JavaScript
原型
JavaScript中的对象有一个特殊的[[prototype]]内置属性,其实就是对于其他对象的引用。几乎所有的对象在创建时[[prototype]]属性都会被默认赋
- JavaScript
类
JavaScript提供了更接近传统语言的写法,引入了class(类),作为对象的模板。通过class关键字,可以定义类。
- JavaScript
你不知道的this
this关键字是JavaScript中最复杂的机制之一,同时,它也是JavaScript中最重要的机制之一。本文系统梳理this的常见误解、四条绑定规则及其优先级、绑定例外、以及箭头函数的词法this。
- JavaScript
完全理解 arguments
它是JS的一个内置对象,常被人们所忽略,但实际上确很重要,JS不像JAVA是显示传递参数,JS传
- JavaScript
柯里化
Currying(果然是满满的英译中的既视感),是把接受多个参数的函数变换成接受一个单一参数(最初函数的第一个参数)的函数,并且返回接受余下的参数而且返回结果的新函数的技术。
- JavaScript
浏览器多线程和 Js 引擎单线程
学术上说,进程是一个具有一定独立功能的程序在一个数据集上的一次动态执行的过程,是操作系统进行资源分配和调度的一个独立单位,是应用程序运行的载体。我们这里将进程比喻为工厂的车间,它代表CPU所能处理的单个任务。任一时刻,CPU总是运行一个进程,其他进程处于非运行状态。
- JavaScript
JavaScript 数据类型
在JavaScript中一共有六种语言类型
- JavaScript
JavaScript 高级函数
reduce 的语法:
- JavaScript
JavaScript 模块化
从无模块时代到 ES Module,系统梳理 JavaScript 模块化的演进:CommonJS、AMD(RequireJS)、CMD(SeaJS)、ES6 Module 的设计思路、用法差异以及 require 与 import 的本质区别。