排序
【JavaScript】模块化:ES Module 与 CommonJS
早期的 JavaScript 没有官方模块系统,社区先后出现了 CommonJS(Node.js 采用)和 AMD 等方案,ES6 终于把 ES Module 写进语言标准。现代浏览器和 Node.js 都原生支持 ESM,新项目应当默认使用...
【JavaScript】事件循环 Event Loop
JavaScript 单线程却不阻塞,靠的就是事件循环机制。理解事件循环是搞懂 setTimeout「不准时」、Promise 执行顺序等问题的前提。1. 运行模型JS 引擎只有一个调用栈。异步任务不进入调用栈,而是...
【JavaScript】原型与原型链
JavaScript 是基于原型的语言,对象通过原型链共享属性和方法。理解原型是理解 this、继承、new 的基础。1. 三个关键对象每个函数都有 prototype 属性(原型对象);每个对象都有内部属性 [[Pro...
【JavaScript】Promise 与 async/await
JavaScript 是单线程语言,异步编程是它的核心能力。从回调函数到 Promise 再到 async/await,异步写法的演进方向就是让代码越来越接近同步的阅读体验。1. 回调地狱的问题// 回调套回调,缩进越...
【JavaScript】解构赋值与扩展运算符
解构赋值和扩展运算符是 ES6 使用频率最高的语法之一,能让对象和数组的操作代码大幅缩短,在 React、Vue 的现代项目里无处不在。1. 对象解构const user = { name: '张三', age: 18, city: '北...
【JavaScript】数组常用方法整理
数组是 JavaScript 中最常用的数据结构,ES6 之后数组方法越来越丰富。按「是否改变原数组」分类整理,方便查阅和选择。1. 不改变原数组:map、filter、find 等const nums = [1, 2, 3, 4, 5]; /...
【JavaScript】箭头函数与普通函数的区别
ES6 引入的箭头函数写法更简洁,但它不只是语法糖:箭头函数和普通函数在 this、arguments、构造能力上有本质区别,选错会直接引发 bug。1. 语法形式// 普通函数 function add(a, b) { return a...
【JavaScript】let、const 与 var 的区别
ES6 之前 JavaScript 只有 var 一种变量声明方式,它的作用域规则和提升行为经常导致难以排查的 bug。ES6 引入的 let 和 const 解决了这些问题,现在的开发中应当默认使用 let 和 const,几乎不...
【go语言】包 package 与 Go Modules
包是 Go 语言组织代码的基本单元,同一个目录下的所有源文件必须属于同一个包。包化让代码可以复用,也控制了标识符的可见性。1. 包的定义与导入每个源文件开头用 package 声明包名,main 包是...
【go语言】错误处理 error、panic、recover
Go 语言通过普通的返回值传递错误,而不是异常机制。惯用法是函数把 error 作为最后一个返回值,调用方检查并处理。1. error 接口error 是一个内置接口,只有一个 Error() 方法:type error int...




