JS & TS
文章平均质量分 87
JS & TS
sasaraku.
这个作者很懒,什么都没留下…
展开
-
nextJS项目内引入TS的基础设施+使用ts书写express服务端
Next本来就内置了ts的webpack配置、babel配置,想要引入的成本很低。还有最痛苦的问题就是不知道express怎么写ts啊啊啊,我原本的文件都是用CJS导入导出的,但是根本不支持导出type,导致我写个type到处都是报错😭总之把一些步骤和解决措施放在下面。原创 2024-10-06 20:02:52 · 870 阅读 · 0 评论 -
JS中的设计模式
门面模式(facade)是一种经常可以在 jQuery 等 JavaScript 库中看到的结构,它的特点是把很多的解决复杂的兼容性问题的实现隐藏在背后,只通过“门面”将对外的接口抽象提供给使用者。它结合了对象组合和对象增强各自的优点,我们既不需要手动的去 delegate 所有的方法,也不会改变主体对象,保持了主体对象的不变性。比如我们常用的 jQuery 的 $() 查询器做的就是把很多复杂的用来接收和解析多种类型的查询功能在后端通过 Sizzle 引擎处理,呈现给开发者的是一套更加简便的选择器。原创 2024-02-08 14:09:22 · 918 阅读 · 0 评论 -
JS进阶(一)
编译中:V8 会混合使用编译器和解释器技术的双轮驱动设计实时编译(JIT Just in Time),这个双轮的一个轮子是直接执行,另一个发现热点代码会优化成机器码再执行,这样做的目的是为了性能的权衡和提升。另外一点值得注意的是,如我们在前一讲所说,函数提升的只是声明式函数,而表达式函数则和变量赋值一样,不会被提升。JS的作用域分成静态作用域(词法作用域)和动态作用域(变量作用域),静态作用域在编译时已经分析完毕,此时会做一些变量提升、函数声明提升的处理,而动态作用域会在执行前进行生成,也是语法解析。原创 2024-02-08 14:09:02 · 879 阅读 · 0 评论 -
JavaScript相关(四)——事件循环
这主要和js的用途有关,js是作为浏览器的脚本语言,主要是实现用户与浏览器的交互,以及操作dom;这决定了它只能是单线程,否则会带来很复杂的同步问题。举个例子:如果js被设计了多线程,如果有一个线程要修改一个dom元素,另一个线程要删除这个dom元素,此时浏览器就会一脸茫然,不知所措,如果要对使用的资源上锁的话可能又会加重操作开销。所以,为了避免复杂性,从一诞生,JavaScript就是单线程,这已经成了这门语言的核心特征,将来也不会改变。原创 2024-02-08 14:08:36 · 378 阅读 · 0 评论 -
JavaScript相关(三)——this
其实这是同一个逻辑链,函数调用,生成执行上下文,得到一个this属性指向当前函数的变量环境,而如果当前变量环境找不到变量,则需要顺着作用域链去寻找外部的变量环境,而外部的作用域链是代码定义时就规定的。原创 2024-02-08 14:08:16 · 359 阅读 · 0 评论 -
JavaScript相关(二)——闭包
了解闭包的前提必须得了解什么是作用域链。也就是(一)的内容。原创 2024-02-07 22:44:50 · 420 阅读 · 0 评论 -
JavaScript相关(一)——作用域
本篇将从JS的执行上下文开始,去理解:变量提升、 栈式调用、作用域和闭包。原创 2024-02-07 22:44:11 · 837 阅读 · 0 评论 -
TypeScript 初学笔记-类型操
主要可以实现实现动态属性的检查。原创 2024-02-07 22:13:03 · 969 阅读 · 0 评论