JavaScript
小晗同学
好好学习,天天向上
展开
-
JavaScript 事件处理模型:冒泡&捕获
JS事件处理模型:(1)事件冒泡:结构上(非视觉上)嵌套关系的元素,会存在事件冒泡的功能,即同一事件,自子元素冒泡向父元素即自底向上。(2)事件捕获:结构上(非视觉上)嵌套关系的元素,会存在事件捕获的功能,即同一事件,自父元素捕获至子元素即自顶向下。(3)一个对象的一个事件类型绑定一个处理函数只能遵循一个事件模型,但是若一个对象的一个事件类型绑定两个处理函数,那么触发顺序:先捕获,后冒泡。(4)取消冒泡。(5)阻止默认事件: 默认事件为浏览器通过HTML标签或DOM元素提供的一些功能性的性的默认行为。原创 2020-09-16 10:16:48 · 2615 阅读 · 1 评论 -
JavaScript 数组定义及常用方法详解!!!
JavaScript数组定义 01 方法一:构造函数(实例化)var arr = new Array(length/content); 02 方法二:字面量(隐式创建)var arr = []; 03 补充点:稀疏数组指索引不连续,数组长度大于元素个数的数组。JavaScript数组常用方法 01 改变原数组(push,pop,shift,unshift,sort,reverse,splice) 02 不改变原数组(concat,join,split,toString,slice)原创 2020-09-01 15:55:42 · 3867 阅读 · 1 评论 -
JavaScript 浅层克隆和深度克隆
浅层克隆和深度克隆1 相关知识点 浅克隆就是将栈内存中的引用复制一份,赋给一个新的变量,本质上两个指向堆内存中的同一地址,内容也相同,其中一个变化另一个内容也会变化。深克隆就是创建一个新的空对象,开辟一块内存,然后将原对象中的数据全部复制过去,完全切断两个对象间的联系。区别:浅克隆和深克隆最大的区别就是对引用值的处理了,即浅克隆之后你改我也改,深克隆之后你改我不改。2 浅层克隆3 深度克隆 3.4 hasOwnProperty() 方法会返回一个布尔值,指示对象自身属性中是否具有指定的属性,即是否有指定的键原创 2020-08-29 20:33:14 · 3625 阅读 · 2 评论 -
JavaScript “this“指向及习题
this指向四要点01 函数预编译过程(this -->window)02 全局作用域里(this --> window)03 call/apply(改变函数运行时this指向)3.1 定义和使用3.2 应用举例04 谁.function() (function()里面的this指向“谁”,即谁调用的这个方法,this就指向的是谁。)原创 2020-08-27 19:51:51 · 1445 阅读 · 0 评论 -
JavaScript 原型和原型链的定义和使用
JavaScript 原型和原型链的定义和使用: 原型是function对象的一个属性,它定义了构造函数制造出的对象的公共祖先。通过该构造函数产生的对象,可以继承该原型的属性和方法(原型也是对象)。利用原型特点和概念,可以提取共有属性,减少代码冗余。查看原型:对象可以通过调用隐式属性__proto__来查看自己的原型。查看对象的构造函数:对象可以调用constructor来查看构造函数(也可以在protot原创 2020-08-17 21:10:14 · 3410 阅读 · 3 评论 -
JavaScript 透过代码看闭包
JavaScript 闭包问题01 闭包的定义:当内部函数被保存到外部时,将会生成闭包。闭包会导致原有作用域链不释放,造成内存泄露。02 闭包的作用:实现公有变量(eg.函数累加器);可以做缓存(存储结构);可以实现封装,属性私有化;模块化开发,防止污染全局变量。03 闭包解决方法:立即执行函数;let声明04 闭包例题练习:例题1,考查闭包输出;例题2,私有化变量原创 2020-08-13 13:00:14 · 1154 阅读 · 1 评论 -
JavaScript 预编译过程的详细解读
JavaScript预编译01 关于预编译的一些知识点02 预编译四部曲(局部)1. 创建AO对象(Activation Object) (执行期上下文)2. 找形参和变量声明,将变量和形参名作为AO属性名,值为undefined3. 将实参值和形参统一 (全局预编译省略这一步)4. 在函数体里面找函数声明,值赋予函数体03 综合例题------全局和局部的预编译和解释执行过程1. 全局预编译三部曲2. 局部预编译四部曲3. JavaScript的解释执行原创 2020-08-13 11:00:31 · 1344 阅读 · 2 评论 -
JavaScript 继承模式发展史(圣杯模式!!!)
JavaScript继承发展史:01 原型链(传统模式)优点:父类的方法和属性得到了复用。缺点:过多的继承了没用的属性,子类实例没有自己的属性。02 借用构造函数 优点:子类的每个实例都有自己的属性,不会相互影响。 缺点:没有实现父类方法的复用,不能继承借用构造函数的原型,每次构造函数都要多走一个函数。03 共享原型 优点:用法简单。缺点:不能随便改动自己的原型。04 圣杯模式(important!)优点:中间生成了一个对象,起到了隔离的作用。既可以有父辈的属性和方法,改变自己的时候,也不会影响父辈的属性。原创 2020-08-27 17:36:10 · 1433 阅读 · 2 评论