本文是我在某中厂任职时的学习笔记,用到 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.865Zcons...
这是一道真实的字节跳动的面试题,通过这个可以加深对 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__ 是实例有的,指向...
这篇文章能让你对 this 和 new 语句的理解更深刻。如果你需要深刻明白原型链、继承等等内容,这块内容将变得很重要。
关于 this
场景A: 在构造函数里
我们先搞懂这块代码:
12345const obj = {}obj.a = 1console.log(obj.a); // 1
是不是很好理解?说简单点,当我们这样写
1234function Hero(name, hp) ...