本文是我在某中厂任职时的学习笔记,用到 DTE 库是基于 ThreeJS 实现的闭源的公司内部库,替代方案和说明可见 DTE 库的开源替代方案(ThreeJS 等)
复杂的模型通常是由专业的三维建模软件(如 Blender, 3ds Max, Maya)创建,并导出为标准格式的文件,比如 GLTF, GLB, OBJ, FBX 等。
DTE 封装了针对不同文件格式的加载器,使得可以把这些...
本文是我在某中厂任职时的学习笔记,用到 DTE 库是基于 ThreeJS 实现的闭源的公司内部库,替代方案和说明可见 DTE 库的开源替代方案(ThreeJS 等)
场景搭建
三维引擎的“铁三角”
在DTE或者说任何三维引擎里,这三样东西是绝对的“铁三角”,缺一不可。
场景 (Scene):就是我们的数字片场。它是一个虚拟的无限大空间,我们之后要添加的所有东西,比如模型、灯光、辅...
本文是我在某中厂任职时的学习笔记,用到 DTE 库是基于 ThreeJS 实现的闭源的公司内部库,替代方案和说明可见 DTE 库的开源替代方案(ThreeJS 等)
我们上一课学习的 ShaderMesh,展示的是某一特定时刻模型上的数据分布。这就像一张照片,记录了瞬间的状态。
但很多仿真分析,比如流体流动、结构应力变化、热量传导,都是一个随时间变化的动态过程。我们需要看的不是一张照片,...
步骤
煎虾滑
虾滑不用解冻,两面都煎的焦黄即可
炒番茄
热油煎蒜末,完事以后加入番茄块炒出汁水
加调料
倒入适量热水
加入番茄酱、蚝油、适量盐和老抽
把水烧开,然后把煎好的虾滑下锅煮
煮的差不多了以后再多加点水,然后面条搞进锅,小火焖煮 5 分钟
加点小米辣和葱花,大功告成
关键心得
我在做的时候还另外加了鱼丸:
心得的话就两点:
虾滑火候
虾滑这种海鲜容易弄焦,...
构造函数
Date() 构造函数可以创建一个基于传入参数构建的 Date 实例,或返回代表当前时间的字符串。
无参数
当没有提供参数时,新创建的 Date 对象代表当前的日期和时间。
12345const date = new Date()console.log(date); // 2025-07-25T02:23:42.865Zconsole.log(date.getTime()); ...
这是一道真实的字节跳动的面试题,通过这个可以加深对 AJAX 的整体理解。
题目
用程序模拟:
红灯每次亮 3 秒,绿灯每次亮 2 秒,黄灯每次亮 1 秒且交替循环,要求用原生 Promise 实现,最好还能加入更多控制 (提示:可以写一个 delay 函数)。
解法1: 同步函数
字节的面试一般会逐渐深入,我这里也模拟这个渐进式过程,先从最简单的实现开始。
1234567891...
基础概念
更多关于事件循环的概念,可见 JS 事件循环
为了彻底理解,我们首先要明确 JavaScript 运行时环境的几个核心组成部分:
调用栈 (Call Stack):一个后进先出(LIFO)的数据结构。当一个函数被调用时,它会被推入栈中;当函数执行完毕返回时,它会从栈中被弹出。JavaScript 主线程的所有同步代码都在这里执行。
堆 (Heap):一块内存区域,用于存储...
在 JavaScript 中,你可以使用 Object.defineProperty() 或 Object.freeze() 方法来将对象的属性变为只读。
1. 使用 Object.defineProperty() 设置属性为只读
你可以使用 Object.defineProperty() 来定义一个只读属性。通过设置 writable 为 false,可以确保属性不可被修改。
12345...
书接上文: 继承的手写实现
既然我们已经搞明白继承的原理了,下面我们就可以看看 ES6 里是怎么做的了。
还是那个模态框的例子,这次我们使用 ES6 的方式实现
12345678910111213141516171819202122232425class Modal { constructor(title, content) { this.title = title ...
一句话:完全不一样!
prototype 是函数的“户口本”,用来登记“子孙后代”应该继承什么。
proto 是实例对象的“寻根指针”,用来指向自己的“祖籍”(也就是它爹的户口本)。
一个是“设计图纸”,一个是“指向图纸的箭头”。
通常来说:
function 或者说 ES6 里的 class 才有 prototype。
__proto__ 是实例有的,指向构造函数的 prot...