
js
文章平均质量分 71
hudk114
原研究生搬砖党
工作了发现还是读书好啊
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
[js] 垃圾收集 内存泄漏
标记清除(mark-and-sweep)引用计数(reference counting) 循环引用会造成内存泄漏内存管理 在数据不再有用后通过设为null来释放引用(dereferencing)内存泄漏 闭包在IE中可能会造成内存泄漏(COM元素的循环引用)function domHandle(){ var ele = document.getElementById('a');原创 2016-09-01 11:35:59 · 235 阅读 · 0 评论 -
[js] this
mdn my git this由调用方法与位置决定,与定义位置,作用域,上下文均无关全局绑定到全局对象this // windowconsole.log(this) // window函数调用简单调用绑定到全局function f() { console.log(this);}f(); // window严格模式会绑定到un原创 2016-08-31 15:59:27 · 307 阅读 · 0 评论 -
[front-end] 双向绑定
一直没仔细研究过这个,感觉自己还是太不够敏感了,原来只是看到有双向绑定,没细想过原理。 my githijack方式hijack主要分为两部分:对数据的劫持、与DOM的关联。两个原理听起来都很简单写起来都是各种小坑数据劫持git 原理很简单,利用Object.defineProperty对数据进行劫持 坑1. hijack obj必须在 hijack propert之前,不然原创 2018-01-30 18:14:09 · 200 阅读 · 0 评论 -
[js] 原型 继承 委托
每个函数都有prototype属性,prototype是一个指向原型对象的指针 例外:通过Function.prototype.bind方法构造出来的函数没有prototype属性function Point(x, y) { this.x = x; this.y = y;}var Y = Point.bind(null, 0, 3);Point.prototype // Ob原创 2016-08-29 16:08:45 · 530 阅读 · 0 评论 -
[js] 数据类型
my git基本数据类型共七种nullundefinedbooleannumberstringobjectsymbol nulltypeof null === 'object' // 早期js判断空指针问题// 判断nulla === null!a && typeof a === 'object'typeof null typeof null hi原创 2017-08-01 15:46:05 · 256 阅读 · 0 评论 -
[front-end] browser兼容
根据接触到的内容持续更新。。。通用ieconsoleie9及以下的console在控制台未打开时无法调用会报错,这种pollyfill已经很多了。。。 ie9及以下的console并不是一个真实方法,因此无法使用Function.prototype.call与Function.prototype.apply方法,对此的pollyfill是将其强行设为一个方法 文中写的polly原创 2018-02-05 16:32:20 · 195 阅读 · 0 评论 -
[js] tips
一些写代码中遇到的小tips,持续更新多项内容需要同一种操作时采用array的map方法例如,时间formatconst formatTime = time => { return parseInt(time, 10) < 10 ? '0' + time : time.toString();};const convertShortTime = time => { cons原创 2018-02-07 19:44:21 · 159 阅读 · 0 评论 -
[vue] vue+vuex实现flux架构 vue+vuex+service+proxy分层
自己在写项目中抽离的一套实现方案 针对的是较为复杂,中间逻辑会大量变化的业务背景git的demo过两天弄下 后续会持续根据在项目中遇到的问题改进和更新vue+vuex实现flux结构vue文件中的数据交互操作抽离,只包含ui操作及不需要进行数据操作的state(View);vuex中保存有所有的交互数据以及操作动作(Store与Action);vue文件与vuex之间原创 2018-02-07 20:12:41 · 2550 阅读 · 1 评论 -
[front-end] 测试 e2e
最近好玩,根据vue-cli里的e2e看了下nightwatch的使用 之后有空研究下内部原理night watch night watch本身只是一个测试框架而已。如图,webdriver与dev都不是night watch的内容,因此需要在配置文件中指定。night watch中则包含测试逻辑。 当然,night watch也可以包含其他测试框架,比如mocha,通过配置文件中的...原创 2018-02-08 16:51:38 · 503 阅读 · 0 评论 -
[js] ES6 函数
参数默认function Man(firstName = 'Hu', secondName = 'DK') { console.log(`Hello, ${firstName} ${secondName}`);}Man(); // Hello, Hu DKMan('Zhao'); // Hello, Zhao DK// null不会触发默认值Man(null, 'DW'); // H原创 2017-07-24 21:54:31 · 421 阅读 · 0 评论 -
[js] 变量 操作符 对象
ES5关键字和保留字数据类型 基本数据类型: Undefined, Null, Boolean, Number, String 复杂数据类型: Object(由一组无须名值对组成) 基本数据类型是按值访问的(保存在栈内存中),引用类型的值是保存在堆内存中的对象。js不允许直接访问内存位置,因此在操作对象时实际操作的是对象的引用而非对象本身 在为对象添加属性时操作的是对象本身(或者说会通过引用原创 2016-09-01 08:39:34 · 800 阅读 · 0 评论 -
[js] 函数 闭包
函数声明函数声明与函数表达式 函数声明会自动提升(function declaration hoisting)test();function test() {console.log('for fun')} // for funtest();var test = function() {} // errorif(condition){ function sayHi(){/*d原创 2016-08-30 09:25:58 · 411 阅读 · 0 评论 -
[js] 作用域 作用域链
执行环境(execution context) - 执行环境定义了变量或函数有权访问的数据 - 每个执行环境都有一个相关联的 变量对象 ,环境中定义的所有变 - 量和函数都保存在该对象中 - 每个函数都有自己的执行环境 1. 函数环境推入环境栈中; 2. 函数执行,返回; 3. 栈弹出环境,将控制权返回之前的执行环境。作用域链(scope chain) 代码在环境中执行时,会创建原创 2016-09-01 11:20:26 · 220 阅读 · 0 评论 -
[css] 居中
居中 水平居中center<center>^^^</center>text-align: center.x { text-align: center; }两者不一样,center是将所有元素居中,text-align只居中字符<center> <section style="width:200px;"> 777 </section></center><section s原创 2016-09-02 11:02:22 · 230 阅读 · 0 评论 -
[js] BOM
window innerheight 文档显示区高度 innerwidth 文档显示区宽度 length 窗口中框架数量 opener 创建此窗口的窗口的引用 top 顶级窗口的只读引用 screenLeft screenTop screenX screenY 窗口左上角在 屏幕 上的xy坐标focus() blur() 给窗口焦点及移开焦点locationnavigatorscreen原创 2016-09-06 09:55:06 · 264 阅读 · 0 评论 -
[js] ES5
array Array.prototype.every() Array.prototype.filter() Array.prototype.forEach() Array.prototype.indexOf() Array.prototype.lastIndexOf() Array.prototype.map() Array.prototype.reduce() Array.pro原创 2016-09-14 20:04:14 · 360 阅读 · 0 评论 -
[js] DOM操作
DOMoperatione.appendChild(newNode) // append newNode at the last of e's child list, return it. if newNode is already one node in html, it would moved here e.insertBefore(newNode, positionedNode) // ap原创 2016-09-05 16:14:37 · 244 阅读 · 0 评论 -
[js] 数组
ES6前ES6扩展运算符 扩展运算符…用于将数组转化为用逗号分隔的参数序列 在函数调用中常用函数中的rest参数// 后跟表达式const arr = [ 1, ...(x > 0 ? [2, 3, 4] : [2, 3]),];// 在定义时使用function f0(...items) { return items.map(i => i * 2);}// 在调用时使用原创 2017-07-31 20:32:14 · 349 阅读 · 0 评论 -
[vue] 源码阅读 next-tick
简介next-tick文件flushCallbacknextTicktimerFuncmacroTaskmicroTaskwithMacroTask总结从今天开始每天阅读一些源码吧 next-tick官方文档简介next-tick的位置在src/core/utils/next-tick.jsnext-tick文件最核心的几个方法是...原创 2018-04-18 16:59:04 · 612 阅读 · 0 评论