随笔分类 -  javascript

摘要:前言 本文讲述怎么实现动态加载组件,并借此阐述适配器模式。 一、普通路由例子 以上是最常见的 。在简单的单页应用中,这样写是ok的。因为打包后的单一js文件 也不过200k左右, 之后,对加载性能并没有太大的影响。 但是,当产品经历多次迭代后,追加的页面导致 的体积不断变大。这时候,优化就变得很有必 阅读全文
posted @ 2018-09-12 07:50 我是leon 阅读(4080) 评论(0) 推荐(0) 编辑
摘要:前言 lodash受欢迎的一个原因,是其优异的计算性能。而其性能能有这么突出的表现,很大部分就来源于其使用的算法——惰性求值。 本文将讲述lodash源码中,惰性求值的原理和实现。 一、惰性求值的原理分析 惰性求值(Lazy Evaluation),又译为惰性计算、懒惰求值,也称为传需求调用(cal 阅读全文
posted @ 2018-08-19 00:52 我是leon 阅读(1606) 评论(1) 推荐(2) 编辑
摘要:栈(stack)又名堆栈,它是一种运算受限的线性表。其限制是 仅允许在表的一端进行插入和删除运算 。这一端被称为栈顶,相对地,把另一端称为栈底。 一、实现一个栈类Stack 基于堆栈的特性,可以用数组做线性表进行存储。 初始化 类的结构如下: 接下来,就是在原型上,对 、`出栈 清空栈 读取栈顶 读 阅读全文
posted @ 2018-08-10 08:26 我是leon 阅读(949) 评论(0) 推荐(1) 编辑
摘要:本文讲述JavaScript中类继承的实现方式,并比较实现方式的差异。 一、何为继承 继承,是子类继承父类的特征和行为,使得子类对象具有父类的实例域和方法。 继承是面向对象编程中,不可或缺的一部分。 1.1 优点 父类可以为子类提供通用的属性,而不必因为增加功能,而逐个修改子类的属性 同上 子类在父 阅读全文
posted @ 2018-07-31 00:46 我是leon 阅读(788) 评论(0) 推荐(0) 编辑
摘要:前言 柯里化,可以理解为 提前接收部分参数,延迟执行,不立即输出结果,而是返回一个接受剩余参数的函数 。因为这样的特性,也被称为部分计算函数。柯里化,是一个逐步接收参数的过程。在接下来的剖析中,你会深刻体会到这一点。 反柯里化,是一个 泛型化 的过程。它使得被反柯里化的函数,可以 接收更多参数 。目 阅读全文
posted @ 2018-07-24 01:49 我是leon 阅读(2307) 评论(0) 推荐(1) 编辑
摘要:前言 虽然现在已经是ES6的时代,但是,还是有必要了解下ES5是怎么写一个类的。 本文详述JavaScript面向对象编程中的类写法,并分步骤讲述如何写出优雅的类。 一、例子 例子为一个轻提示组件 。 需要实现的功能: 方法,显示提示 方法,隐藏提示 方法,初始化提示语 二、类的构成 JavaScr 阅读全文
posted @ 2018-07-20 01:35 我是leon 阅读(1609) 评论(5) 推荐(5) 编辑
摘要:一、为什么Cookie需要防篡改 为什么要做Cookie防篡改,一个重要原因是 Cookie中存储有判断当前登陆用户会话信息(Session)的会话票据 SessionID和一些用户信息 。 当发起一个HTTP请求,HTTP请求头会带上Cookie,Cookie里面就包含有SessionID。 后端 阅读全文
posted @ 2018-05-22 07:49 我是leon 阅读(7583) 评论(15) 推荐(2) 编辑
摘要:尤达表达式是什么?   尤达表达式是计算机编程中的一种风格,其中表达式的两个部分与条件语句中的典型顺序相反。   这种风格的命名,来源于星球大战的一个角色, 。剧中,该角色喜欢以颠倒的语序说英语。比如 。   下面举个栗子:  & 阅读全文
posted @ 2018-05-09 15:45 我是leon 阅读(2130) 评论(0) 推荐(1) 编辑
摘要:概要 本文主要描述,如何不使用中间值,将两个变量的值进行交换。 前三种只适用于number类型的数值交换,第四和第五种适合其他类型。 一、普通做法 普通的做法就是声明多一个临时变量 ,进行数据交换过程中的缓存。这样的做法直观,易懂。但是,会增加内存的使用。 二、算术运算 通过算术运算过程中的技巧,可 阅读全文
posted @ 2017-02-27 22:07 我是leon 阅读(6889) 评论(0) 推荐(0) 编辑
摘要:一、概念解释 函数节流和函数防抖,两者都是优化高频率执行js代码的一种手段。 大家大概都知道旧款电视机的工作原理,就是一行行得扫描出色彩到屏幕上,然后组成一张张图片。由于肉眼只能分辨出一定频率的变化,当高频率的扫描,人类是感觉不出来的。反而形成一种视觉效果,就是一张图。就像高速旋转的风扇,你看不到扇 阅读全文
posted @ 2017-02-15 07:20 我是leon 阅读(42034) 评论(2) 推荐(12) 编辑
摘要:一、热身——先看实战代码 a.js 文件 index.jsp文件 这样,不管a.js文件多大, 都可以等到文件真正加载完后,再执行。 二、工具简介 看这个执行代码,你也许会感觉困惑 什么鬼!😆 sniffer.js作用就是可以试探执行方法,如果不可执行,也不会抛错。 比如例子 如果该方法所在文件还 阅读全文
posted @ 2017-02-14 00:35 我是leon 阅读(3690) 评论(2) 推荐(0) 编辑
摘要:一、IIFE解释 全拼Imdiately Invoked Function Expression,立即执行的函数表达式。 像如下的代码所示,就是一个匿名立即执行函数: 二、括号的意义 2.1 包住 的括号的意义 这个括号的目的,是为了把 转化为表达式。像一些库的源码,喜欢用如下方式代替: 或者这种方 阅读全文
posted @ 2017-02-13 00:50 我是leon 阅读(1207) 评论(0) 推荐(2) 编辑
摘要:一、题目  用JS代码求出页面上一个元素的最终的background color,不考虑IE浏览器,不考虑元素float情况。(题目copy自网上) 二、题目解析   1.考察底层JavaScript基础  前端开发,日常最常接触的就是页面样式的编写。而摆脱jQuery 阅读全文
posted @ 2017-02-05 23:04 我是leon 阅读(3375) 评论(1) 推荐(3) 编辑
摘要:一、题目介绍 以下是我copy自网上的面试题原文: 实现一个LazyMan,可以按照以下方式调用: LazyMan("Hank")输出: Hi! This is Hank! LazyMan("Hank").sleep(10).eat("dinner")输出 Hi! This is Hank! //等 阅读全文
posted @ 2017-01-22 23:02 我是leon 阅读(1577) 评论(1) 推荐(2) 编辑
摘要:一、发现黑科技的起因 今天在微信公众号看到一篇技术博文,想用印象笔记收藏,所以发送了文章链接到pc上。然后习惯性地打开控制台,看看源码,想了解下最近微信用了什么新技术。 呵呵,以下勾起了我侦探的欲望。页面加载后的异常点就是只加载了一个js,如下图所示: 我很诧异,为什么已经开启了Disable ca 阅读全文
posted @ 2017-01-18 20:37 我是leon 阅读(14778) 评论(9) 推荐(6) 编辑
摘要:一、方法引用来源和应用 此动态加载css方法 loadCss,剥离自Sea.js,并做了进一步的优化(优化代码后续会进行分析)。 因为公司项目需要用到懒加载来提高网站加载速度,所以将非首屏渲染必需的css文件进行动态加载操作。 二、优化后的完整代码 javascript var url = opti 阅读全文
posted @ 2017-01-17 23:01 我是leon 阅读(7368) 评论(1) 推荐(1) 编辑
摘要:一、科普时间 hash hash 属性是一个可读可写的字符串,该字符串是 URL 的锚部分(从 号开始的部分)。 location.hash=anchorname。 锚点 锚点是网页制作中 "超级链接" 的一种,又叫 "命名锚记" 。命名锚记像一个迅速 "定位器" 一样,是一种页面内的超级链接 二、 阅读全文
posted @ 2017-01-15 21:15 我是leon 阅读(9714) 评论(3) 推荐(0) 编辑
摘要:一、背景 window.onload方法只能存在一个,如果多次赋值给window.onload,则后者会覆盖前者。 二、浅谈jQuery.noConflict的实现方式 1)源代码 2)解析 缓存已有的引用 在jQuery库想获得变量$的控制权之前,需要假设之前已经有其他库使用了变量$。 那么,就必 阅读全文
posted @ 2017-01-12 19:42 我是leon 阅读(536) 评论(0) 推荐(0) 编辑
摘要:一、官方文档的说明 in the face of "evil features" such as eval or with, the YUI Compressor takes a defensive approach by not obfuscating any of the scopes cont 阅读全文
posted @ 2017-01-10 20:42 我是leon 阅读(426) 评论(0) 推荐(0) 编辑
摘要:一、科普IE条件注释 IE条件注释功能是条件注释是 IE特有 的一种功能,能对IE系列产品进行单独的XHTML代码处理,注意,主要是针对XHTML,而非CSS。条件注释功能非常强大,可以 进行true和false判断 。 最大好处:IE条件注释 属于微软官方给出的兼容解决办法而且还能通过W3C的效验 阅读全文
posted @ 2017-01-09 21:16 我是leon 阅读(857) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示