liqian

Follow me on GitHub

博客列表

  • JavaScript反调试技巧

    简介:我们主要针对的是如何给代码主动调试增加困难

  • 揭开JS无埋点技术的神秘面纱

    简介:无埋点在国外一些平台被叫做Codeless Tracking,顾名思义就是可以写“更少”的埋点代码。

  • 前端埋点知多少

    简介:在这个大数据时代,数据的收集所依赖的埋点显得格外重要

  • JavaScript代码的自文档化

    简介:为了使代码易读好维护,除了加注释之外,还可以让代码自文档化

  • webpack-10-依赖图(dependency graph)

    简介:任何时候,一个文件依赖于另一个文件,webpack 就把此视为文件之间有依赖关系。

  • 数据可视化

    简介:数据可视化可以有效增强人的记忆力,我们经常说的一图胜千言就是可视化对生活的影响。

  • webpack-9-模块解析(module resolution)

    简介:resolver 是一个库(library),用于帮助找到模块的绝对路径。

  • webpack-8-模块(modules)

    简介:在模块化编程中,开发者将程序分解成离散功能块(discrete chunks of functionality),并称之为_模块_。

  • webpack-7-配置(configuration)

    简介:webpack 的配置文件,是导出一个对象的 JavaScript 文件。此对象,由 webpack 根据对象定义的属性进行解析

  • webpack-6-plugins

    简介:插件是 wepback 的支柱功能。webpack 自身也是构建于,你在 webpack 配置中用到的相同的插件系统之上!

  • webpack-5-loader

    简介:loader 用于对模块的源代码进行转换。loader 可以使你在 import 或 加载 模块时预处理文件。

  • webpack-4-模式(mode)

    简介:提供 mode 配置选项,告知 webpack 使用相应模式的内置优化。

  • webpack-3-输出(Output)

    简介: 配置 output 选项可以控制 webpack 如何向硬盘写入编译文件。注意,即使可以存在多个入口起点,但只指定一个输出配置

  • webpack-2-入口起点(Entry Points)

    简介:还将向你展示如何去配置 entry 属性

  • webpack-1

    简介:本质上,webpack 是一个现代 JavaScript 应用程序的静态模块打包器(module bundler)

  • 画一条0.5px的边

    简介:讨论了像素和viewport的一些概念,并介绍和比较了在高清屏上画0.5px的几种方法——可以通过直接设置宽高border为0.5px、设置box-shadow的垂直方向的偏移量为0.5px、借助线性渐变linear-gradient、使用transform: scaleY(0.5)的方法,使用SVG的方法。最后发现transfrom scale/svg的方法兼容性和效果都是最好的,svg可以支持复杂的图形,所以在viewport是1的情况下,可以使用transform/SVG画0.5px,而如果viewport的缩放比例不是1的话,那么直接画1px即可

  • HTML 5 canvas

    简介:Canvas 对象表示一个 HTML 画布元素 - canvas。它没有自己的行为,但是定义了一个 API 支持脚本化客户端绘图操作。

  • js实现快排及稳定性分析

    简介:对于一个数组,从中随机选择一个数字(一般选取第一个),然后把整个数组中小于它的元素放在左侧,大于它的元素放在右侧,然后递归执行。

  • 递归和尾递归的区别和实现

    简介:递归非常消耗内存,因为需要同时保存很多的调用帧,这样,就很容易发生栈溢出,尾递归函数的特点是在回归过程中不用做任何操作

  • 递归算法,JavaScript实现

    简介:递归算法,是将问题转化为规模缩小的同类问题的子问题,每一个子问题都用一个同样的算法去解决。一般来说,一个递归算法就是函数调用自身去解决它的子问题。

  • 10 种最常见的 Javascript 错误

    简介:我们希望可以避免将来的错误,或者解决一些头痛的问题

  • 前端架构设计-读书笔记

    简介: 不要把所有的希望寄托在一个单独的解决方案,框架或者平台,除非它一次又一次被证明是有效的。我们仍然需要不断的迭代和尝试新的事物。

  • HTML 5.2 有哪些新内容?

    简介:HTML 5.2 有哪些新内容

  • EcmaScript 2017(ES8)的一些新特征

    简介:EcmaScript 8 或称 EcmaScript 2017 在六月底的时候由TC39委员会正式发布,现在每一年都会有一个ES版本规范发布

  • ES7新特性

    简介:ES7在ES6的基础上添加了三项内容:求幂运算符(**)、Array.prototype.includes()方法、函数作用域中严格模式的变更。

  • Node.js -- https

    简介:HTTPS 是 HTTP 基于 TLS/SSL 的版本。在 Node.js 中,它被实现为一个独立的模块。

  • Node.js -- http

    简介:要使用 HTTP 服务器与客户端,需要 require('http')。

  • Node.js

    简介:Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境。 Node.js 使用了一个事件驱动、非阻塞式 I/O 的模型,使其轻量又高效。 Node.js 的包管理器 npm,是全球最大的开源库生态系统。

  • React Native PanResponder组件

    简介:PanResponder API将多种触摸行为协调成一个手势。它可以很方便的追踪一个单点触摸的后续发展,也可以用于识别简单的多点触摸手势。

  • React Native Modal组件

    简介:Modal组件可以在某个View上按开发者的需求呈现任意UI界面,并且处理这个UI界面的交互事件

  • React Native Navitator组件

    简介:React Native Navitator组件

  • React Native ListView组件

    简介:ListView组件用来呈现一个列表,也可以通过上、下滑动来展示原来显示在屏幕外的内容

  • React Native ScrollView组件

    简介:ScrollView组件允许用户左、右、或者上、下滑动查看原来显示在屏幕外的内容

  • React Native Image组件

    简介:React Native 可以从给定的网址、给定的本地文件或者项目的资源文件中加载图片

  • React Native Text组件

    简介:Text内部的元素不再使用flexbox布局,而是采用文本布局

  • React Native 搭建开发环境

    简介:React Native 搭建开发环境

  • 开放-封闭原则

    简介:在面向对象的程序设计中,开放-封闭原则(OCP)是最重要的一条原则。很多时候,一个程序具有良好的设计,往往说明它是符合开放-封闭原则的。

  • 最少知识原则

    简介:最少知识原则(LKP)说的是一个软件实体应当尽可能少地与其他实体发生相互作用

  • 单一职责原则

    简介:单一职责原则,就一个类而言,应该只专注于做一件事和仅有一个引起它变化的原因。

  • 命令模式

    简介:命令模式是最简单和优雅的模式之一, 模式中的命令(command)指的是一个执行某些特定事情的指令。

  • 观察者模式与发布/订阅模式

    简介: 定义对象间的一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都将得到通知

  • JavaScript设计模式 - 代理模式

    简介: 代理模式是为一个对象提供一个代用品或占位符,以便控制对它的访问

  • calendar的翻译和学习

    简介:基于react的日历组件

  • cropperjs的翻译和学习

    简介:这个插件,经测试,也可以用在react项目中哦~

  • Redux 8 - 基础:Action

    简介:Action是应用发送到Store中数据的信息载体,也是Store中数据的唯一来源。使用store.dispatch()方法可以将他们发送到Store中。

  • writing-mode

    简介:改变CSS世界纵横规则的writing-mode属性

  • Redux 6 - 入门:生态系统(Ecosystem)&& Redux 7 - 入门:示例(Examples)

    简介:Redux生态系统和Redux示例,主要是Redux示例学习

  • Redux 5 - 入门:现有技术(Prior Art)

    简介: Redux类似于一个混血儿,和一些现有模式和技术比较相似,但也存在一些重要的不同。下面将分析一下Redux和这些技术之间的相同点和不同点。

  • Redux 4 - 入门:三大原则(Three Principles)

    简介:单一数据源原则、状态只读、纯函数更改

  • Redux 3 - 入门:核心概念(Core Concepts)

    简介:redux的工作流程图

  • Redux 2 - 入门:动机(Motivation)

    简介:随着JavaScript的单页应用的要求变得越来越复杂,我们的代码必须比以往管理更多的状态。其中既包含服务器响应和缓存数 据,也包括由本地创建尚未持久化到服务器端的数据。同时UI状态也越发复杂,我们必须管理路由激活,选项卡选择,进度条 ,分页控件,等等。

  • Redux1 - 简介(Readme)

    简介: Redux是一个可预测的JavaScript应用程序的状态容器

  • js清除浏览器缓存的几种方法

    简介:JS 缓存的问题一直都是我们又爱又恨的东西

  • ES6语法之十三(编程风格)

    简介:es6的编程风格

  • ES6语法之十二(Promise 对象)

    简介:Promise 对象

  • ES6语法之十一(Class)

    简介:Class

  • ES6语法之十(Set和WeakSet)

    简介:Set和WeakSet

  • ES6语法之九(Map和WeakMap)

    简介:Map和WeakMap

  • 本地存储

    简介:Cookie,LocalStorge,SesstionStorge的区别和用法

  • React Native 中 component 生命周期

    简介:组件的状态和生命周期 合理利用

  • 偶遇小题

    简介:此题涉及的知识点较多,包括变量定义提升、this指针指向、运算符优先级、原型、继承、全局变量污染、对象属性及原型属性优先级等,有兴趣可以做题玩玩

  • ES6 fetch函数与后台交互

    简介:ES6 fetch函数与后台交互

  • 初识Vue.js

    简介:Vue.js是一套构建用户界面的渐进式框架。Vue 采用自底向上增量开发的设计,核心库只关注视图层,它不仅易于上手,还便于与第三方库或既有项目整合。另一方面,当与单文件组件和 Vue 生态系统支持的库结合使用时,Vue 也完全能够为复杂的单页应用程序提供驱动

  • ES6语法之八(对象的扩展)

    简介:对象的扩展

  • ES6语法之七(函数的扩展)

    简介:函数的扩展

  • ES6语法之六(数组的扩展)

    简介:数组的扩展

  • ES6语法之五(数值的扩展)

    简介:数值的扩展

  • ES6语法之四(正则的扩展)

    简介:正则的扩展

  • ES6语法之三(字符串的扩展)

    简介:字符串的扩展

  • ES6语法之二(变量的解构赋值)

    简介:变量的解构赋值

  • ES6语法之一(let和const命令)

    简介:let和const命令

  • this关键字

    简介:在JavaScript中,函数的this关键字的行为与其他语言相比有很多不同。在JavaScript的严格模式和非严格模式下也略有区别

  • 面向对象的七大基本原则-里氏代换原则LSP

    简介:里氏代换原则是实现抽象化的一种规范,是使代码符合开闭原则的一个重要保证

  • 面向对象的七大基本原则

    简介:你不必严格遵守这些原则,违背它们也不会被处以宗教刑罚。但你应当把这些原则看成警铃,若违背了其中的一条,那么警铃就会响起-----Arthur J.Riel

  • UEditor上传图片问题

    简介:UEditor上传图片问题是很多前端同学都遇到的坑,遇坑要冷静,多读文档才是王道

  • 面向对象的三个基本特征之多态

    简介:多态的实际含义是:同一操作作用于不同的对象上面,可以产生不同的解释和不同的执行结果。换句话说,给不同的对象发送同一个消息的时候,这些对象会根据这个消息分别给出不同的反馈。

  • 面向对象的三个基本特征之继承

    简介:ECMAScript只支持实现继承,而且其实现继承主要是依靠原型链来实现的

  • 静态资源https可用性检测

    简介:https升级后我们需要做些什么?

  • 循环复杂度

    简介:循环复杂度是指程序的控制流图中,若将结束点到启始点再增加一个边时,控制流图中的圈(几个边形成封闭路径)的个数

  • 面向对象的三个基本特征之封装

    简介:封装,也就是把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象操作,对不可信的进行信息隐藏。

  • 在js开发中,如何减少if else语句的使用

    简介:if语句通常会让代码更加复杂,但凡事无绝对,这不代表可以完全抛弃if语句,存在必有其价值,只要找对合适的使用场景。有深度嵌套或者有扩展和修改需求的可能性,为了便于维护,我们要多一些思考和预备方案。

  • input[type='file']打开文件选择框缓慢问题

    简介:在文件上传控件中正确使用 accept 属性,可提高速度,改善用户体验

  • javascript基础 字符串

    简介:查漏补缺,本周做项目时发现自己对字符串的处理容易出错,重新整理,希望能有温故而知新的效果

  • css实现 图片加载前的占位高度预设

    简介:在一个有多张质量较高的图片的页面上,网速较慢的情况下,如何让页面看起来加载比较流畅,不出现闪屏,跳屏的情况...