编程技术
未读
浏览器渲染主线程与队列
浏览器的进程模型 要了解事件循环概念我们要先了解浏览器的进程模型。 浏览器的进程模型是指浏览器在执行任务时如何划分和管理进程,以实现页面渲染、网络请求、插件处理等功能。不同的浏览器使用不同的进程模型来优化性能、增强安全性和提高稳定性。 1. 单进程模型 在早期浏览器(如最早版本的IE浏览器)中,所有
编程技术
未读
cjs、esm、umd模块有何不同
cjs (commonjs) commonjs 是 Node 中的模块规范,通过 require 及 exports 进行导入导出 (进一步延伸的话,module.exports 属于 commonjs2) 同时,webpack 也对 cjs 模块和 esm 模块都得以解析,因此 cjs 模块可以运
编程技术
未读
js 为什么不支持函数的重载
首先声明:这里所指的JavaScript 不支持函数的重载,指的是严格意义上的函数重载 JavaScript 不支持函数重载,主要原因在于它的函数是动态和弱类型的关系。 1. 动态类型系统 JavaScript 是一种动态类型的语言,即函数参数的类型在运行时才确定。在其他支持重载的语言(如 Java
编程技术
未读
那些你不知道的js-卷三
前言 前两卷我们都介绍的一些比较奇特又比较好玩的示例,这期我们讲的相对来说就属于比较基础的部分了。 1. 块内部的声明提升 // for
for (var i=0; i<10; i++) {
// console.log( i );
}
console.log(i);
// if
if(tr
编程技术
未读
那些你不知道的js-卷二
1. 奇特的 ~ 运算符 它首先将值强制类型转换为 32 位数字,然后执行字位操作“非”(对每一个字 位进行反转)。这与 ! 很相像,不仅将值强制类型转换为布尔值 <,还对其做字位反转。 ~x 大致等同于 -(x+1)。很奇怪,但相对更容易说明问题: ~42; // -(42+1) ==> -43
那些你不知道的js-卷一
1. 特殊类型 因为typeof null === "object"因此我们需要使用复合条件来检测 null 值的类型 var a = null;
(!a && typeof a === "object"); // true 还有一种情况: typeof function a(){ /* .. */