摘要:
父节点、子节点、根节点、兄弟节点、叶子节点 A 节点就是 B 节点的父节点,B 节点是 A 节点的子节点。 B、C、D 这三个节点的父节点是同一个节点,所以它们之间互称为兄弟节点。 没有父节点的节点叫做根节点。 没有子节点的节点叫做叶子节点。 高度、深度、层 高度和深度都是从 0 开始。 满二叉树 阅读全文
posted @ 2025-11-17 18:52
jinzhepro
阅读(3)
评论(0)
推荐(0)
摘要:
堆栈 在 chrome 中,只要打开一个渲染进程,浏览器就会初始化 V8,同时初始化堆和栈。 栈主要只用来管理 JavaScript 调用的,栈是一块连续的内存空间,先进后出策略。 堆是一种树形结构,用来存储对象类型的离散的数据。 全局执行上下文和全局作用域 全局执行上下文里可能有多个作用域 词法环 阅读全文
posted @ 2025-11-17 18:51
jinzhepro
阅读(3)
评论(0)
推荐(0)
摘要:
当 ChatGPT 能秒写代码片段,当 Copilot 在 IDE 里实时“搭把手”,当 AI 工具开始接管重复的 API 封装、单元测试生成……我们不得不承认,一场由人工智能掀起的技术风暴,正深刻重塑着工程师的工作场景。有人焦虑“会不会被 AI 取代”,有人兴奋“终于能从繁琐工作里脱身”,但无论情 阅读全文
posted @ 2025-11-17 18:46
jinzhepro
阅读(1)
评论(0)
推荐(0)
摘要:
nodejs 分为两个大版本:奇数版和偶数版 每年十月 nodejs 发布奇数版为 Current,供给开发者最新特性的支持,6 个月后奇数版(Current)转为维护期(Maintenance)持续 18 个月随后进入结束期(EOL)。 就在奇数版转为维护期的同时,差不多第二年四月,偶数版本发布为 阅读全文
posted @ 2025-11-17 18:46
jinzhepro
阅读(3)
评论(0)
推荐(0)
摘要:
之前做的一个 expo 项目里有用到 google 登陆功能,特此记录一下: 1.申请 google credentials 首先需要登陆google cloud申请 Web ClientID、iOS ClientID、android ClientID。 Web ClientID 填入对应的后台地址 阅读全文
posted @ 2025-11-17 18:45
jinzhepro
阅读(2)
评论(0)
推荐(0)
摘要:
graph TB A[选择许可证] --> B[修改源码后是否可以闭源] --> |是| D[每一个修改过的文件是否都需要版权说明]--> |是| E[Apache] B-->|否|F[新增代码是否采用同样许可证] --> |是|G[GPL] D-->|否|H[是否可以用你的名字做广告促销] --> 阅读全文
posted @ 2025-11-17 18:44
jinzhepro
阅读(3)
评论(0)
推荐(0)
摘要:
基于对象 JavaScript 是一门基于对象的语言,因为 JavaScript 中大部分内容都是由对象构成的,可以说 JavaScript 就是建立在对象上的语言。 JavaScript 中的对象是指一组组属性和值组成的集合 45 属性描述符 configurable:是否可配置(delete,d 阅读全文
posted @ 2025-11-17 18:43
jinzhepro
阅读(3)
评论(0)
推荐(0)
摘要:
函数是一种特殊的对象 一等公民 JavaScript 中函数可赋值,可传参,可作为返回值,可有属性 如果某个编程语言中的函数,可以和其他数据类型做一样的事,函数就是一等公民。 V8 如何管理函数? 使用栈来管理函数调用 因为被调用者的生命周期始终小于调用者(后进先出),函数在执行过程中,其内部的临时 阅读全文
posted @ 2025-11-17 18:43
jinzhepro
阅读(3)
评论(0)
推荐(0)
摘要:
知识点:作用域、var、let、 const、ES6 解构赋值 1.作用域 ES5 中只有全局作用域和函数作用域的概念 我们应当避免使用全局变量 使用var声明变量 var a = 1; a = 1; window.a = 1; 上面三种结果都一样 值得注意的是,如果在函数里使用了var声明变量,则 阅读全文
posted @ 2025-11-17 18:41
jinzhepro
阅读(2)
评论(0)
推荐(0)
摘要:
js 中对象分为普通对象和函数对象,区别在于,普通对象的__proto__属性直接指向Object.prototype,所以对我们来说,讨论普通对象的原型并没有意义,下面我们主要讨论的是函数对象。 函数对象(也叫构造函数的实例),顾名思义是由函数构造的对象 function Person() {} 阅读全文
posted @ 2025-11-17 18:41
jinzhepro
阅读(3)
评论(0)
推荐(0)
摘要:
众所周知,数组的长度越长,查询的代价就越大。假如说现在要查询员工的薪资,需要有一个员工名字的数组,根据员工名字的位置在查找薪资。 所以 ES6 推出了 Map 和 Set,无论数据多大,查找速度也不会慢。 Map Map 可以理解为存放键值对的数组,像是一个二维数组: var map = new M 阅读全文
posted @ 2025-11-17 18:41
jinzhepro
阅读(3)
评论(0)
推荐(0)
摘要:
HTTP get 和 post 区别 get 多用于无副作用的场景,如搜索 post 多用于副作用的场景,如注册 get 可以被浏览器主动缓存,post 不能 post 比 get 相对安全 post 可以传输比 get 更多的数据 get 有长度限制 post 有更多的编码类型 强缓存 表示在时间 阅读全文
posted @ 2025-11-17 18:33
jinzhepro
阅读(2)
评论(0)
推荐(0)
摘要:
Number 数值分为整数和浮点数,可使用十进制,八进制,十六进制和科学计数法来表示。 var a = 1; var b = 1.1; var c = 067; var d = 0xa; var e = 1.23e7; console.log(a, b, c, d, e); NaN 表示一个非数值, 阅读全文
posted @ 2025-11-17 18:31
jinzhepro
阅读(2)
评论(0)
推荐(0)
摘要:
使用 docker+jenkins 实现自动化部署个人网站,只记录过程和可能要注意的点。 Docker docker 是一个应用容器引擎,可以理解为是操作系统上的软件包(容器)的集合,其容器之间相互独立,没有接口,完全使用沙箱机制隔离,容器内部的软件可以映射端口到宿主机。 使用 docker 可以更 阅读全文
posted @ 2025-11-17 18:31
jinzhepro
阅读(2)
评论(0)
推荐(0)
摘要:
一般我们开发 webApp 习惯用 chrome 控制台自带的手机模拟器,这没什么不好的,只不过在调试某些功能是会受限制: chrome 并不能完成完美的调用摄像头,调用录音等原生功能 chrome 有时不能完美的演示手机样式问题 所以就有了本地真机调试的想法,在网上大概搜了一下,结合自己的实践整理 阅读全文
posted @ 2025-11-17 18:30
jinzhepro
阅读(2)
评论(0)
推荐(0)
摘要:
表达式的最小单位,优先级最高 "zhang"; 123; null; true; false({})(function () {}); Member Expression 成员表达式 访问对象的成员,为了属性的访问 a().b a['b'] f`a${b}c` new class() // 带有参数 阅读全文
posted @ 2025-11-17 18:29
jinzhepro
阅读(2)
评论(0)
推荐(0)
摘要:
/[U+4E00–U+9FA5]/ 这是我们平时最常用的汉字匹配正则表达式,Unicode1.0 收录了 U+4E00–U+9FA5 范围内的文字,共计 20902 个汉字,但问题是这是 1993 年发布的,至今已经过去将近 30 年时间,这中间也已经加入了相当多的汉字。 历史 1993 年,Uni 阅读全文
posted @ 2025-11-17 18:29
jinzhepro
阅读(1)
评论(0)
推荐(0)
摘要:
DNS 查询路线 sequenceDiagram participant A as 用户 participant B as 浏览器 participant C as DNS根域名服务器 participant D as 顶级域名服务器 participant E as 域名服务器 A ->> B: 阅读全文
posted @ 2025-11-17 18:28
jinzhepro
阅读(1)
评论(0)
推荐(0)
摘要:
解析没有 defer 或 async 属性的 js 时会阻塞 DOM 的解析 graph LR A[页面加载] --> B[构建DOM树] --> D[render树] A --> C[构建CSSOM树] --> D B -..-> E[解析js图像等其他资源] D --> F[布局确定每个对象在页 阅读全文
posted @ 2025-11-17 18:28
jinzhepro
阅读(2)
评论(0)
推荐(0)
摘要:
rebase:重设基础点 将当前的branch的基础点移动到目标分支。 这么做的好处是主干master明确。 git rebase <目标分支> 不过rebase之后 master 并没有跟随过去,需要再合并一下: git checkout master git merge <刚刚的分支> 这样 m 阅读全文
posted @ 2025-11-17 18:27
jinzhepro
阅读(2)
评论(0)
推荐(0)

浙公网安备 33010602011771号