随笔分类 - js笔记
摘要:rail是一种以用户为中心的性能模型,又google提出,其主要目标是让用户满意,主要分为response animation idle load四个部分 response 输入延迟时间小于100毫秒,超过这个时间用户能感知到延迟 animation 每一帧完成时间小于16毫秒,因为人眼可以感知到每
阅读全文
posted @ 2017-11-30 15:03
炎泽
摘要:本文总结自: http://www.jianshu.com/p/24874469dafd 内存泄漏常见的是如下四种情况,在此只做记录,方便参考,详情可查看以上链接 1.意外的全局变量 常见情况如下: 根据js语法可知,变量未声明就赋值将视为其作用域为全局作用域 或者 这也会创建一个全局变量 解决方法
阅读全文
posted @ 2017-11-29 17:58
炎泽
摘要:随着JS模块化编程的发展,处理模块之间的依赖关系变得至关重要,随后诞生了CommonJS、AMD与CMD规范,但es6的import/export能代替他们,但因为本人所使用的webpack也支持前三者的语法,且面试题中常出现,因此只对他们做一个简要的总结: CommonJS 诞生最早,用于服务端,
阅读全文
posted @ 2017-11-29 15:44
炎泽
摘要:1.利用token 原理:每次登录时为用户生成一个token并存放于cookie中,下次登录时,验证token是否正确并自动登录 这样每次生成时失效时间不同,token也不同 缺点: 1.安全问题,当cookie被窃取(可以为cookie设置http-only,防范XSS、csrf等攻击)时,任何人
阅读全文
posted @ 2017-10-29 09:20
炎泽
摘要:parseInt(string, radix) 功能: 将字符串转换为十进制的数字 radix: string的进制,没有时根据string进行判断: 1~9开头 十进制 0x开头 16进制 0开头 八进制或16进制 允许开头结尾有空格 string被空格隔开时转换第一个 当无法转换时返回NaN e
阅读全文
posted @ 2017-10-28 16:08
炎泽
摘要:history对象包含用户访问过的URL,属于window对象的一部分,传统的使用中,它拥有length属性(浏览器历史列表URL数目) 及back()、forward()、go()方法。 而新的H5则赋予了其更多的新特性: 往返缓存 默认情况下,浏览器会缓存当前会话页面,这样当下一个页面点击后退按
阅读全文
posted @ 2017-10-09 16:51
炎泽
摘要:假定有: 这样一个数组矩阵,现要求对其进行顺时针方向螺旋形从外至内地遍历,即输出: [1,2,3,6,9,8,7,4,5] 分析: 将每一次360度遍历视为一个周期,每一个周期分为上右下左四个阶段,逐个进行遍历: 以下是本人的草稿,请忽略苍劲如龙卷风摧朽拉枯般的字体。。。 理清思绪后就剩下笔了:
阅读全文
posted @ 2017-09-28 14:20
炎泽
摘要:数组属于引用数据类型,其值存储在堆中,因此我们无法简单的用[]==[]对其进行判断,但可以使用类似于深拷贝的方法将其像剥洋葱一样拨开,逐个判断 下面是本人自己写的一套算法:
阅读全文
posted @ 2017-09-27 15:07
炎泽
摘要:首先,让我们先做一道算法题: 将一串带小数的金额,例如: 1010000.5689, 每3位加上','分隔符。 刚开始我的做法是将.左边的部分单独提取出来进行正则替换,这花费了不少的步骤,直到我发现这种做法: function commafy(str){ return str.replace(/(\
阅读全文
posted @ 2017-09-22 14:24
炎泽
摘要:本文由 http://www.cnblogs.com/phpstudy2015-6/p/6767032.html 整理总结而来 XSS又称CSS(cross site script),译为跨站脚本攻击,是web程序中常见的漏洞。 原理: 攻击者向有XSS漏洞的网站输入恶意代码(耗时间),当用户浏览该
阅读全文
posted @ 2017-09-20 15:55
炎泽
摘要:String与toString能将对象转为字符串: 虽然两者功能一般情况下相同,但还是有区别的 1.使用toString将null、undefined转为字符串会报错,而是要String会返回'null'、'undefined' 2.toString()可增加进制参数,将字符串进行进制转换,Stri
阅读全文
posted @ 2017-09-15 16:56
炎泽
摘要:相比很多人都遇见过这样的情况: 给一个ul的所有li绑定行为,在点击时获取其index。 假设结构如下: 很多人会这么做: 结果输出的全是5,这便是闭包的最常见的出现情形。 解决方案: 1.利用let块级作用域的特性 2.利用自执行函数独立作用域,也是红宝书里推荐的写法 3.利用事件委托机制(只适用
阅读全文
posted @ 2017-09-11 09:43
炎泽
摘要:在我们实际做项目的过程中,有时需要在拉伸页面时调节弹框位置,这就需要调用window.resize函数,但这也会引发一个问题, 那就是在极短的时间内,resize内的函数会被执行许多次,造成内存的大量使用甚至浏览器崩溃,同理,在调用mousemove时也会这样。 为此,在js红宝书内提出了函数节流的
阅读全文
posted @ 2017-09-10 10:39
炎泽
摘要:观察者模式定义一种一对多的关系,多个观察者订阅一个主题对象,当主题对象发生改变的时候通知所有观察者,使他们能实现更新。 具体实现方式: 定义一个被观察对象,定义一个主题数组,观察者订阅主题通过往数组对象内添加回调函数来实现,当主题发生改变时轮流调用回调函数。 有时我们不喜欢使用那么多this,不想把
阅读全文
posted @ 2017-09-10 10:00
炎泽
摘要:js中并没有函数重载的概念,但函数的arguments参数能帮助我们模拟重载。 arguments并不是真正的数组,但拥有length(参数数目),且能通过数组下标的方式进行访问,例如arguments[0],arguments[1]。。。 拥有callee属性,指向此函数。 将arguments转
阅读全文
posted @ 2017-09-09 23:01
炎泽
摘要:定义: 使多个对象都有机会处理请求,避免发送者与接受者之间的耦合关系,将对象连成一条链,沿着这条链传递请求,直到有一个对象处理它。 如何把对象串联起来?解决方法通常是将另一个对象作为新创建对象的参数,称为继承者。 如何把请求传递下去?通常在其原型上定义同名请求方法,在此方法里调用继承者。 极简示例如
阅读全文
posted @ 2017-09-08 14:56
炎泽
摘要:什么是工厂模式?就好比一个工厂,能造汽车、飞机...,通过对外接口,由顾客决定,来定制哪一款产品。 在js内表现为,一个工厂函数/对象,包含汽车、飞机等子类,提供对外接口,根据参数返回不同子类的实例 简单实例如下: 何时使用: 1.对象构建十分复杂 2.需要依赖具体环境创建不同实例 3.处理大量具有
阅读全文
posted @ 2017-09-08 12:03
炎泽
摘要:同源限制: 浏览器不允许一个域的脚本请求另一个域的文档,通俗来说,不允许访问不同协议、不同域名或不同端口的文档 跨域处理方法: 1.jsonp 前提: 浏览器虽然对ajax请求做出了限制,但script的链接没有限制,例如: <script src= 'xxx'>,我们可以轻松地链接到另一个域的文件
阅读全文
posted @ 2017-09-07 11:24
炎泽
摘要:input[type='file']的accept属性用来指定上传文件的MIME类型。 将其设为accept= 'image/*',顾名思义,过滤掉所有非图片文件, 但在实际操作中,发现有时会出现响应缓慢的问题,特别是在chrome与Safari,IE与firefox则没有此问题。 搜索过后发现:
阅读全文
posted @ 2017-09-05 09:49
炎泽
摘要:一个合格的插件必须满足以下要求: 1.拥有独立作用域与用户作用域隔离,插件内的私有变量不可影响用户定义的变量 2.拥有默认参数 3.提供配置方法让用户可改变参数 4.提供监听接口,以监听页面操作 5.支持链式调用 接下来是一个改变文本颜色的简单插件 另一种格式是通过构造函数创建实例:
阅读全文
posted @ 2017-08-31 16:34
炎泽

浙公网安备 33010602011771号