- 博客(16)
- 资源 (7)
- 收藏
- 关注
原创 JavaScript 防抖 与 节流
目录一、防抖二、节流三、防抖和节流之间的区别一、防抖个人理解的防抖:将规定时间内的多次请求,最终执行一次请求,且是新计时区间的第一次。为什么防抖要用到 setTimeout ? 因为,需求是请求是多次,但是最终只执行一次; 我们阻止不了事件的触发次数(多次),但我需要控制触发事件的执行次数,而且是规定时间内,这时setTimeout是不是就很合适。setTimeout首先是在计时器线程里计时,时间到了再到事件队列等待执行,到了事件队列里的事件没办法控制它取消执行,但是计时器线程里的事件可
2021-04-29 17:14:27 152
原创 JavaScript setTimeout( ) 与clearTimeout( )
setTimeout( )setTimeout( ) 方法用于在指定的毫秒数后调用函数或计算表达式。返回: 整型数值 id ,是 setTimeout 的唯一标识符,可用于取消 setTimeout 设置的函数clearTimeout( )clearTimeout( id ) : 根据 id 取消相应的定时器...
2021-04-29 16:02:03 141
原创 JavaScript 继承 - - 寄生式组合继承(经典继承)
目录一、回顾 组合继承 (伪经典继承)二、寄生式组合继承一、回顾 组合继承 (伪经典继承)结合了构造函数继承+对象原型继承不足的地方是:每个实例对象 都执行了两次Super函数,一次是prototype赋值,一次是Super.call并且 我们预期是想继承 父级的原型属性,而Suber.prototype = new Super(); 还另外承了this 对象, // 组合继承 function Super() { this.pbrand = 'super'
2021-04-28 15:13:14 354
原创 JavaScript 继承 - - 原型式继承 & 对比 对象原型继承 & 寄生式继承
目录一、原型式继承二、原型式继承 与 对象原型继承一、原型式继承2006年,Douglas Crockford在《JavaScript中的原型继承》中提到:function object(o){ function F(){ }; //临时的构造函数, F.prototype = o; return new F();}我们来实践一下这个方案: // 原型式继承:当传入的参数为构造函数实例 // 写一个工具函数 object function obj
2021-04-28 10:38:27 132 1
原创 JavaScript 继承--组合继承(伪经典继承)
目录一、组合继承的实现二、缺点组合继承:对象原型继承 + 构造函数继承一、组合继承的实现首先,我有几个问题,对象原型继承会继承this对象+prototype对象,构造函数继承会继承this对象,那么这个this对象 以谁的为准? // 组合继承 function Super() { this.pbrand = 'super'; // 添加引用值 this.a = [1, 2, 3, 4, 5]; } function Sub
2021-04-27 17:27:09 207
原创 JavaScript 继承 - - 构造函数继承 + 缺陷
目录一、对比--对象原型继承(又称 原型链继承)二、构造函数继承 的实现三、Super.call(this)四、验证一下引用值不共享,五、缺点一、对比–对象原型继承(又称 原型链继承)对象原型继承的关键语句:Suber.prototype = new Super();存在的问题:引用值共享(无论是this对象 还是prototype对象上的引用值);构造函数继承:解决了 this对象上引用值共享的问题!二、构造函数继承 的实现- 特点:构造函数继承,继承的是原型的 this 对象
2021-04-27 16:43:01 184 1
原创 JavaScript new 实例对象的过程
一、new 实例化对象构造函数 跟 函数 没有什么形式区别,为了代码规范,构造函数名首字母会大写。//构造函数function Foo(){}//实例对象new Foo();//普通函数function running(){}构造函数 可以用 new 实例对象,1.1、new 实例对象过程首先,创建了一个新对象,如:var foo = {}然后,新对象的 _ proto _ 属性指向构造函数的原型对象prototype将构造函数的作用域赋值给新对象(也就是this对
2021-04-27 16:18:31 421
原创 JavaScript 继承 - - 对象原型继承 & 引用值共享的原因
目录一、对象原型继承1.1、对象原型继承的实现1.2、缺陷:原型上的引用值共享1.3、出现引用值共享的原因一、对象原型继承1.1、对象原型继承的实现 // 对象原型继承 function Super(){ this.pbrand = 'super'; } function Suber(){ this.bbrand = 'suber'; } // 对象原型Suber.prototype 继承 Super实例对象 // 原因: 因
2021-04-27 15:30:54 280
原创 JavaScript 理解__proto__ + prototype +constructor
目录一、new 实例化对象1.1、new 实例对象过程二、prototype (构造函数的属性)三、 _ _proto_ _ (实例对象的属性)四、constructor一、new 实例化对象构造函数 跟 函数 没有什么形式区别,为了代码规范,构造函数名首字母会大写。//构造函数function Foo(){}//实例对象new Foo();//普通函数function running(){}构造函数 可以用 new 实例对象,1.1、new 实例对象过程首先,创建了
2021-04-26 20:48:54 89
原创 JavaScript 彻底理解for循环、for...in、foEach()、for...of之间的本质区别
常见的 **for… ** 循环,是一种最简单的迭代,循环是迭代机制的基础,目录一、可迭代对象有哪些?简单的迭代(for循环)的对象,它有什么特点?为什么说forEach仅限数组使用?为什么说Array.prototype.forEach()方法向通用迭代需求迈进了一步,但仍不够理想?二、那来讲讲 for..in2.1 先讲讲对象类型的数据结构是怎样的?2.2 for...in **遍历的是什么?2.3 for...in 遍历顺序一、可迭代对象有哪些?Array 数组MapSet 集合(内容不
2021-04-16 08:54:29 462
原创 JavaScript let(块级作用域 { })进阶、函数默认值
通过例子深入了解 let / 块级作用域一、块级作用域 { }二、函数默认值三、函数参数作用域 与 函数内部的块作用域一、块级作用域 { } // 1、 var x = 2; { let x = 4; console.log(x); // 4 } // 2、块中 x 没有值,往外层查找; { let y = x; console.log(y); // 2 } //3、 = 右边的 x 访问的是块中
2021-04-10 17:40:34 309
原创 JavaScript const声明进阶 、对象冻结
目录一、const 声明1.1、对于原始值类型变量:值就等于值1.2、对于引用值类型:值等于地址二、对象冻结(Object.freeze())一、const 声明 都知道 const 是用来声明常量的,声明的时候必须初始化变量且不能修改1.1、对于原始值类型变量:值就等于值const j = 1;j = 2;console.log('j:', j); 修改的时候报错了:1.2、对于引用值类型:值等于地址下面的例子表明:对象内部的属性是可以修改,但是修改引用报错const obj =
2021-04-08 15:51:14 255
原创 JavaScript 预编译法则(自我理解)
自我整理的JS工作大致流程,方便查阅:首先检查通篇的语法错误,预编译操作,JS执行。其中预编译操作的法则:其中 函数声明是整体提升,变量只有声明提升,赋值不提升,1、全局上下文预编译流程寻找变量声明,var寻找函数声明,最后执行2、执行函数时,函数上下文预编译流程寻找函数的形参,和 var 变量声明实参 赋值给 形参寻找函数内部的函数声明执行函数...
2021-04-08 09:33:22 127
原创 JavaScript 浏览器多进程 + 进程与线程的理解 + JS运行机制
目录一、区分进程 、线程1.1 首先官方的定义1.2 结合例子理解前端方向上理解二级目录三级目录一、区分进程 、线程1.1 首先官方的定义进程:进程 是CPU资源分配的最小单位(是能拥有资源和独立运行的最小单位)线程:线程 是CPU调度的最小单位(线程 是建立在 进程 的基础上的一次程序运行单位,一个进程可以有多个线程)1.2 结合例子理解工厂里有多个车间,每个车间一个或多个员工,每进程 - - 工厂 ,工厂有独立的资源;工厂之间相互独立;进程 - - 车间,线程 -
2021-04-06 17:34:28 1326 1
原创 JavaScript 给对象写迭代器,使对象可以使用for...of
目录一、用到 对象 转 Map二、迭代器的编写一、用到 对象 转 Map var obj = { "a": 1, "b": 2, "c": 3 }; var map = new Map(); for(let key in obj){ map.set(key,obj[key]); } console.log(map); for(let item of obj){ console.log(i
2021-04-06 11:38:24 266
Hibernate基础编程
2018-01-26
Eclipse4.7+struts2.5+tomcat7+hibernate5.0.12+mysql5.1.45 简单例子
2018-01-26
Mac下 Eclipse4.7 + Struts2.5 简单的例子
2018-01-26
Mac下 Eclipse4.7 + MySQL5.1.45 简单的数据库连接
2018-01-26
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人