- 博客(23)
- 收藏
- 关注
原创 JavaScript 模块化详解( CommonJS、AMD、CMD、ES6模块化)
CommonJS 规范概述了同步声明依赖的模块定义。这个规范主要用于在服务器端实现模块化代码组 织,但也可用于定义在浏览器中使用的模块依赖。CommonJS 模块语法不能在浏览器中直接运行;在浏览器端,模块需要提前编译打包处理。
2025-04-02 15:29:09
732
原创 在TS中type和interface的区别
interface主要定义对象形状的,type可以定义任意类型,包括原始类型,联合类型。interface扩展使用的是extends继承。interface同名接口会自动合并成一个。interface和type都能被类实现。type支持更复杂的类型表达式。type使用的是交叉类型 &type同名类型则会报错。
2025-03-31 16:29:15
135
原创 javaScript Vue2的高级用法
当组件使用混入对象时,所有混入对象的选项将被“混合”进入该组件本身的选项。install 是组件安装的一个方法,跟 npm install 完全不一样,npm install 是一个命令。我们在编写代码时,组件内部并不清楚这块内容的具体实现,我就需要将这个坑位留出,需要开发者传进来。另外,混入对象的钩子将在组件自身钩子之前调用。,将被合并为同一个对象。两个对象键名冲突时,取组件对象的键值对。带有名称的插槽,用于接收父组件中明确指定插槽名称的内容。一种特殊的插槽,允许子组件将数据暴露给父组件的插槽内容。
2025-03-26 15:45:34
338
原创 深入理解 JavaScript 的 Promise 与 async/await
在 JavaScript 中,异步操作允许程序在等待某个任务完成时,继续执行其他代码,而不会阻塞主线程。这对于处理如网络请求、文件读写、定时器等耗时任务尤为重要。ECMAScript 6 新增的引用类型Promise,可以通过new操作符来实例化。Promise 是一种用于处理异步操作的对象,它代表一个尚未完成但预计会在未来某个时间点完成的操作。Promise 有三种状态:待定(pending兑现(fulfilled,有时候也称为“解决”,resolved拒绝(
2025-03-19 10:41:25
706
原创 JavaScript 什么是闭包,对闭包的理解
闭包指的是那些引用了另一个函数作用域中变量的函数,通常是在嵌套函数中实现的。比如,下面是之前展示的createComparisonFunction()函数,注 意其中加粗的代码:这里加粗的代码位于内部函数(匿名函数)中,其中引用了外部函数的变量。在这个内部函数被返回并在其他地方被使用后,它仍然引用着那个变量。这是因为内部函数的作用域链包含 createComparisonFunction()函数的作用域。要理解为什么会这样,可以想想第一次调用这个函数 时会发生什么。
2025-03-18 09:16:43
496
原创 JavaScript 什么是this, this的深入理解
在浏览器中,全局上下文就是我们常说的 window 对象,因此所有通过 var 定义的全局变量和函数都会成为 window 对象的属性和方法。变量或函数的上下文决定 了它们可以访问哪些数据,以及它们的行为。每个上下文都有一个关联的变量对象 ( variable object ), 而这个上下文中定义的所有变量和函数都存在于这个对象上。在函数执行完之后,上下文栈会弹出该函数上下文,将控制权返还给之前的执行上下文。引用的是把函数当成方法调用的上下文对象,这时候通常称其为。引用的是定义箭头函数的上下文。
2025-03-17 13:53:23
253
原创 JavaScript 原型与原型链,以及类的继承 心得总结
通过一个构造函数(包括类)创建的实例,在构造函数内定义的属性和方法都会在每一个实例对象内访问到,但是每一个实例上的属性和方法都是独立不相等的。
2025-03-12 18:17:37
580
原创 JavaScript 原型与原型链,以及object的方法详解
1.无论何时,只要创建一个函数,就会按照特定的规则为这个函数创建一个 prototype。有读者可能注意到了,每次定义一个属性或方法都会把 Person.prototype。的属性,指回与之关联的构 造函数。属性(指向 原型对象)。在自定义构造函数时,原型对象默认只会获得 constructor。方便地取得一个对象的原型,而这在通过原型实现继承时显得尤为重要。然后,因构造函数而 异,可能会给原型对象添加其他属性和方法。被设置为等于一个通过对象字面量创建的新对象。,无论该属性是在实例上还是在原型上。
2025-03-10 11:30:25
813
原创 JavaScript 深入理解对象
在读取访问器属性时,会调用获取函数,这个函数的责任就是返回一个有效 的值。它接收两个参数:要为之添 加或修改属性的对象和另一个描述符对象,其属性与要添加或修改的属性一一对应。简 单地说,对象解构就是使用与对象匹配的结构来实现对象属性赋值。要给其添加属性的对象、属性的名称和一个描述符对象。对每个符合条件的属性,这个方法会使用源对象上的[[Get]]收两个参数:属性所在的对象和要取得其描述符的属性名。赋值的时候可以忽略某些属性,而如果引用的属性不存在,则。默认情况下,所有直接定义在对象上的属性的这个特性。
2025-03-07 16:00:42
870
原创 前端 Babel 详解
这些转换可以是自定义的,也可以使用Babel提供的插件,在得到AST后,我们一般会先将AST转为另一种AST,目的是生成更符合预期的AST,这一步称为代码转换。语法转换:Babel可以将ECMAScript 2015+(ES6+)的语法转换为ES5或更旧版本的语法,使代码可以在旧的JavaScript环境中运行。生成:在转换过程完成后,Babel将转换后的AST重新生成为可执行的JavaScript代码。+)转换为旧版本的代码(如ES5),以便能够在旧版本的浏览器或环境中运行。
2025-03-06 09:28:00
417
原创 JavaScript 对于原型和原型链的理解
任何对象都有一个原型对象,这个原型对象由对象的内置属性_proto_指向它的构造函数的prototype指向的对象,即任何对象都是由一个构造函数创建的,但是不是每一个对象都有prototype,只有方法才有prototype。创建对象的过程(采用new关键),当我们声明一个function关键字的方法时,会为这个方法添加一个prototype属性,指向默认的原型对象,并且此prototype的constructor属性也指向方法对象。此二个属性会在创建对象时被对象的属性引用。
2025-03-05 15:15:31
317
原创 JavaScript 数组的方法
splice(index,howmany,item1,...itemx) index参数:必须,整数,规定添加或删除的位置,使用负数,从数组尾部规定位置 howmany参数:必须,要删除的数量,如果为0则不删除项目 item1,...itemx参数:可选,向数组添加的新项目 var arr=[1,2,3,4,5] console.log(arr.splice(2,1,"hello"));2.forEach使用场景:并不打算改变数据的时候,而只是想用数据做一些事情,比如存入数据库?
2025-03-05 10:59:25
870
原创 JavaScript 垃圾回收机制
垃圾回收程序运行的时候,会标记内存中存储的所有变量(记住,标记方法有很多种)。然后,它 会将所有在上下文中的变量,以及被在上下文中的变量引用的变量的标记去掉。在此之后再被加上标记 的变量就是待删除的了,原因是任何在上下文中的变量都访问不到它们了。当变量进入上下文,比如在函数 内部声明一个变量时,这个变量会被加上存在于上下文中的标记。而在上下文中的变量,逻辑上讲,永 远不应该释放它们的内存,因为只要上下文中的代码在运行,就有可能用到它们。在浏览器的发展史上,用到过两种主要的 标记策略:标记清理和引用计数。
2025-03-05 08:39:45
410
原创 JavaScript 字符串的方法
substr(strart,length)方法类似 slice(),不同的是第二个参数规定被提取部分的长度;返回字符串中指定文本首次出现的索引(位置),参数一:string 要查找的字符串,参数二:start 查找的起始位置 (可省略)slice(strart,end)方法,提取字符串的某个部分并在新字符串中返回被提取的部分。参数二:end 结束索引(结束位置);参数一:string 要查找的字符串,参数二:start 查找的起始位置。参数一:str 被替换的字符串,参数二:restr 替换的字符串;
2025-03-04 20:53:36
279
原创 JavaScript 作用域与作用域链,和执行上下文
作用域链是由当前执行上下文的变量对象以及所有父级执行上下文的变量对象按照特定顺序连接而成的链式结构。当在代码中访问一个变量时,JavaScript 引擎首先会在当前执行上下文的变量对象中查找,如果未找到,则沿着作用域链向上一级执行上下文的变量对象中查找,直至找到该变量或者到达全局作用域。每个执行上下文都有一个与之关联的变量对象,该变量对象包含了在该作用域内定义的变量、函数声明等信息。在函数执行完之后,上下文栈会弹出该函数上下文,将控制权返还给之前的执行上下文。了各级上下文中的代码在访问变量和函数时的顺序。
2025-03-04 16:22:50
307
原创 JavaScript 基本数据类型和引用数据类型的区别
如果是 引用值,那么就跟引用值变量的复制一样。对很多开发者来说,这一块可能会不好理解,毕竟变量有按 值和按引用访问,而传参则只有按值传递。如果是原始值,那么就跟原始值变量的复制一样,如果是 引用值,那么就跟引用值变量的复制一样。在把引用值从一个变量赋给另一个变量时,存储在变量中的值也会被复制到新变量所在的位置。原始值和引用值的定义方式很类似,都是创建一个变量,然后给它赋一个值。别在于,这里复制的值实际上是一个指针,它指向存储在堆内存中的对象。, 这表明函数中参数的值改变之后,原始的引用仍然没变。
2025-03-04 15:11:20
533
原创 JavaScript 彻底弄清 逻辑非、逻辑与和逻辑或
逻辑与操作符可用于任何类型的操作数,不限于布尔值。逻辑与操作符是一种短路操作符,意思就是如果第一个操作数决定了结果,那么永远不会对第二个。与逻辑与类似,如果有一个操作数不是布尔值,那么逻辑或操作符也不一定返回布尔值。对逻辑与操作符来说,如果第一个操作数是。如果第二个操作数是对象,则只有第一个操作数求值为。如果第一个操作数是对象,则返回第二个操作数。如果两个操作数都是对象,则返回第二个操作数。如果第一个操作数是对象,则返回第一个操作数。如果两个操作数都是对象,则返回第一个操作数。如果操作数是对象,则返回。
2025-03-04 11:18:22
252
原创 JavaScript 操作符 前加加与后加加的区别 ++a 与 a++
无论使用前缀递增还是前缀递减操作符,变量的值都会在语句被求值之前改变。(在计算机科学中, 这通常被称为具有副作用。把递增操作符放到变量后面不会改变语句执行的结果,因为递增是唯一的操作。前缀递减操作符也类似,只不过是从一个数值减。使用前缀递减操作符,只要把两个减号(在这个例子中,前缀递增操作符把。
2025-03-04 10:17:12
154
原创 JavaScript var let 和const 的区别
3. let 跟 var 的作用差不多,但有着非常重要的区别。最明显的区别是,let 声明的范围是块作用域,而 var 声明的范围是函数作用域。基本相同,唯一一个重要的区别是用它声明变量时必须同时初始化变量,且 尝试修改 const。),在此 阶段引用任何后面才声明的变量都会抛出 ReferenceError。1. var 和 let 是声明一个变量,const是声明一个常量。声明的变量会导致运行时错误。(只限于基本数据类型)声明提升,可以反复多次的声明同一个变量。声明的变量不会在作用域中被提升。
2025-03-03 17:25:24
269
原创 JavaScript DOM 和BOM区别
1.定义文档对象模型DOM)是一个应用编程接口(API),用于在HTML中使用,DOM 将整个页面抽象为一组分层节点。HTML 或 XML 页面的每个组成部分都是一种节点,包含不同的数据。DOM通过创建表示文档的树,让开发者可以随心所欲地控制网页的内容和结构。使用DOM API可以轻松地删除、添加、替换、修改节点。2. DOM级别1998年10月,成为W3C的推荐标准。这个规范由两个模块组成:DOM Core和DOMHTML。前者提供了一种映射XML。
2025-03-03 16:50:31
402
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人