
JavaScript
文章平均质量分 81
野草_前端
Try and fail, but not fail to try.
展开
-
数据双向绑定的分析和简单实现
简介自从Angularjs火起来之后,双向绑定经常被提及。双向绑定概念其实很简单,就是视图(View)的变化能实时让数据模型(Model)发生变化,而数据的变化也能实时更新到视图层。我们所说的单向数据绑定就是从数据到视图这一方向的关系。对于数据双向绑定,我们需要考虑的问题如下:如何监听页面View的变化?如何将View的变化更新到Model?如何监听Model的变化?如何将Model变化更新到View原创 2017-02-27 20:45:37 · 2199 阅读 · 0 评论 -
Babel简单学习笔记
ES6出来很久了,项目中没有用到,我也一直没仔细去看。一直抱着先把ES5打扎实再说,然后时间在不知不觉中过去了。我还是了解地太少太少了。终于,开始踏出接触新知识的第一步了。Babel的作用就是将ES6代码转译成现代浏览器基本都支持的ES5代码。本文简单记录Babel的入门。文章较水,就是以自己的理解整理网上现有的一些资源教程,供自己参考。安装先把安装Babel命令行工具和预设置:npm instal原创 2017-04-16 22:28:37 · 1426 阅读 · 0 评论 -
小记JS模块化
有很长一段时间,我对JS模块化的概念就是处于模糊的状态。感觉自己的智商真的有点低。后来,突然发现模块化其实就是C++中的include功能,说白了有点像类的封装。茅塞顿开!!!本文就稍微整理下JS的模块化。模块化的背景当项目变得复杂,可能会出现的问题:命名冲突按需加载依赖管理问题于是就有了模块的必要性。除了解决以上两个问题之外,模块化还有的好处是:可维护性代码复用我们来看看目前有哪些解原创 2017-04-16 22:30:35 · 448 阅读 · 0 评论 -
【译】JS继承常见误区扫盲
关于本文:原文地址 翻译地址 译者:野草什么鬼!!!当程序员遇到违反“最小惊讶原则”,违反他们直觉的时候,他们会不由自主地发出这句感叹!举个栗子: .1 + .2 0.30000000000000004 什么鬼!!!(+﹏+)~@当我遇到一些资深前端开发,却不知道JavaScript原型继承(Prototypal inheritance)的时候,我也情不自禁地发出“什翻译 2017-04-16 22:37:31 · 549 阅读 · 0 评论 -
如何搭建Swagger接口文档
Swagger是规范RESTful API服务的语言或者说工具,不仅可以用来定义接口,还可以测接口,一举两得。我不知道这个工具的流行程度如何,至少我知道的是网上的中文资料很少,也没有如何在实际中使用起来的教程。经过一两天的研究,总结一个简单的搭建手册。Swagger的核心工具主要为三个:Swagger-UI:API展示和测试页面Swagger-Editor:所见即所得式编辑工具Swagger-原创 2017-05-05 17:54:28 · 1178 阅读 · 0 评论 -
【译】Vue框架引入JS库的正确姿势
关于本文:原文地址 翻译地址 译者:野草在Vue.js应用中,可能需要引入Lodash,Moment,Axios,Async等非常好用的JavaScript库。当项目变得复杂庞大,通常会将代码进行模块化拆分。可能还需要跑在不同的环境下,比如浏览器,服务端。如何在各个模块和组件文件中引入需要的库呢? 找到一种简单靠谱的方式,可以省去很多的麻烦。错误示范全局变量法最不靠谱的方式就是将导入的库挂在翻译 2017-04-24 20:37:42 · 10080 阅读 · 0 评论 -
JavaScript单线程异步的背后——事件循环机制
感觉这篇文章拖了很久,好尴尬的拖延症。刚接触前端的时候,知识面是支离破碎的,甚至我都不知道我不知道的,比如事件。现在,慢慢的,我知道我不知道的,比如事件循环机制。然后花时间去了解,就变成我知道我知道的。说实话,这个我也就朦朦胧胧知道了一点。正文从这里开始~~~说起JavaScript特性,单线程运行当然是其中很重要的一点。那什么是单线程,什么是多线程呢?单线程就是事件要一件一件地做,排在前面的事情没原创 2017-05-16 21:08:44 · 2249 阅读 · 2 评论 -
JS模块化简单实现
曾经花了一段时间去看RequireJS源码,虽然就两千行左右的代码,但原谅我的愚笨,真的有点看不懂。想想,还是自己实现一个再说。简单目标实现类似requireJS的功能,涉及到的功能// 定义模块,三个参数define(id, deps, factory)// 执行模块,两个参数require(deps, factory) 简单分析先上一个简单的例子,进行分析:require(['main']原创 2017-04-27 09:26:49 · 7226 阅读 · 0 评论 -
Angular变化检测机制:改善的脏检查
前端展示的页面是由视图和数据共同构成的,视图模板定义了页面的框架,而数据定义了页面具体的显示内容。而数据发生变化的时候,我们需要及时将变化的内容更新到视图中,否则用户看到的数据就是不正确的。系统及时感知到数据模型的变化,然后通过计算更新到视图中,这是每个前端框架都需要解决的问题。这前一半部分就是所谓的变化检测。数据何时变化接下来的问题是,数据何时变化,哪些因素会引起数据变化?原创 2017-07-15 12:53:10 · 7259 阅读 · 0 评论 -
Angular4简单入门笔记
本文是笔者在学习开发过程中的总结输出,目的在于让初次接触Angular的开发者对该框架能有整体的认识,并且能快速上手开发工作。原创 2017-07-15 12:47:55 · 6962 阅读 · 2 评论 -
闭包与立即调用函数表达式IIFE
JavaScript中闭包和立即执行函数是老生常谈的问题。说起闭包,可能大家的第一印象是函数中包着函数。知道个大概,却不能用严谨的术语描述出来。我觉得比较专业且好理解的定义是,一个能在自己被创建时的作用域之外使用的函数。分解一下这个定义,需要有的条件有:1. 该函数被嵌套在另外一个函数中; 2. 该函数会被返回到它的父函数所在的作用域下。原创 2017-02-10 11:16:19 · 904 阅读 · 0 评论 -
你不知道的JS读书笔记5—原型继承
查阅了挺多资料,也看了很久。网上列了好些继承的方法,各种方法,比如原型式继承,原型链继承,组合继承,寄生式继承,寄生组合式继承等。我挺不喜欢这样的方法的,感觉像是背答案一下,我也不知道这名称是谁取。猜猜应该来源某本权威的书,网上有很多类似的博文。我就说说我能理解的部分,以及整理成我理解的方式。不当之处,欢迎指出!类继承面向对象设计语言中比较经典的概念就是继承,那继承是什么?原创 2017-03-17 14:30:44 · 432 阅读 · 0 评论 -
你不知道的JS读书笔记4—原型与原型链
JS中一提到面向对象编程,就避免不了谈到原型链,因为在JS中类的继承是基于原型链的。花了些时间整理原型,原型链,可能还是有点绕。不当之处,欢迎指出。简单例子我们先从一个简单的例子入手,尝试阐述这些概念。function Animal(name, species, n){ this.name = name; this.species = species || 'animal';原创 2017-03-10 17:20:25 · 350 阅读 · 0 评论 -
你不知道的JS读书笔记2—this对象
本文是在《你不知道的JS》上阅读了其他的资料之后整理的。this是很重要的一个对象,它不指向它本身不指向它的作用域,它指向函数调用所处的位置。需要分析函数的调用栈,调用位置就是调用栈中当前函数的上一个函数。原创 2017-02-21 11:51:21 · 335 阅读 · 0 评论 -
你不知道的JS读书笔记1—闭包&作用域
编译原理编译原理,实际上JavaScript是编译语言,只是它在执行前的短暂时间快速的编译。一般的编译步骤包括:词法分析:简单地说就是划分单词语法分析:将这些单词进行分析,转化为“抽象语法树”(AST)代码生成:将“抽象语法树”变成可执行的代码原创 2017-02-18 16:53:33 · 611 阅读 · 0 评论 -
【译】深入学习JavaScript闭包
闭包(closure)是JavaScript中最基本的概念,也是每个前端工程师都应该彻底掌握的概念。网上有很多教程,通俗易懂地解释了闭包的概念,却鲜有深入探讨闭包背后的机制和原理。笔者在工作中深有感悟,彻底地理解和掌握某个知识点的本质,会让你在工作中游刃有余。因此经过笔者深入地学习调研之后,本文全面而透彻地分析闭包的运行方式,以及运行背后的机制。翻译 2017-03-03 18:56:36 · 330 阅读 · 0 评论 -
JS事件简单总结
这个其实不是很好描述,有可能是由用户发起的,比如鼠标事件,键盘事件,窗口事件,表单事件,也有可能是页面加载资源过程中的事件。常见的事件比如:click, dbclick, keydown, keypress, keyup, mousemove, wheel, scroll, focus, blur, load, unload, abort, error, resize, change, select, submit。原创 2017-03-04 20:08:51 · 530 阅读 · 0 评论 -
JS浅拷贝和深拷贝的小整理
这个话题应该是说大也大,说不大也不大。我就简单给自己总结整理一下。记得16届春招网易校招的最后一个笔试题,实现一个深拷贝。说这个话题之前,先扯一下JS的基本数据类型。大家都知道JS中的数据类型分为基本类型:string, number, boolean, null, undefined引用类型:Object,特殊的有Array, Function, Date原创 2017-03-01 22:06:49 · 943 阅读 · 0 评论 -
你不知道的JS读书笔记3—对象与类
关于JS对象,我觉得大家应该再熟悉不过了。下面就总结一点我不算很熟悉的,或者需要注意的知识点。然后顺便提一下传统中的类,JavaScript是怎么模拟实现的。对象基础知识对象,是由无序的键值对组成,而且键是字符串。如果不是字符数据类型,会自动调用toString方法转化为字符类型。原创 2017-03-06 17:13:37 · 283 阅读 · 0 评论 -
RegularJS资料整理
据说,RegularJS是基于动态模版实现的用于构建数据驱动型组建的新一代类库。结合了AngularJS的脏检查机制的数据双向绑定和ReactJS组件化的思想,用起来应该和VueJS差不多(因为我没用过VueJS)。RegularJS是极具网易特色的库,项目中在用,稍微研究研究。搜索了一下网上所有有关的资料,还真的不多。这是我能找到的所有靠谱资料。官网资料http://原创 2017-02-27 16:45:17 · 3608 阅读 · 0 评论 -
小记ES5和ES6的类
ES6中的类只是语法糖,它并没有改变类实现的本质。举个例子,在ES5中定义一个类:function Person(name) { this.name = name; }Person.prototype.sayHello = function(){ return 'Hi, I am ' + this.name;}而用ES6的写法重写一下,检测类型发现Person本质上仍然是函数:原创 2017-03-29 16:20:30 · 4853 阅读 · 0 评论 -
《编写优雅的前端业务代码》听后感
这场知乎live主要拿了一份现实工作中的业务代码进行一步步地优化分析。每个人的收获都是不一样的。我就以我的水平去总结一下这场live,也说说我的收获。原来的代码一共300行不到的js,用jquery写的。整个代码结构,就是前面定义少许变量,然后一堆函数,一堆事件的绑定,中间夹杂着几个函数的调用,算是初始化的功能吧。对这份代码的整体感受,代码格式整洁,有些注释,太多DOM操作,太多样式的计算看得有点眼原创 2017-03-12 11:14:42 · 3642 阅读 · 0 评论 -
前端开发中的地理定位问题小总结
项目中遇到地理定位的问题,没遇过不知道,遇过就发现这是个比较坑的问题。这个问题其实困扰了我挺久的,还不如一次性了解清楚。所以本文进行了一些小总结,先简单总结我看过的关于定位技术的资料,然后介绍前端开发中的可选定位方案,以及存在的一些问题。定位技术概念上很好理解,就是定位你在哪里的技术。常见的定位方式有基站定位,WiFi定位,IP定位,GPS定位等。基站定位基站是能进行信号交换的站点。手机能接受信号,原创 2017-03-23 16:24:58 · 19478 阅读 · 2 评论 -
绘制随机不规则三角彩条——小谈EvanYou个人主页的实现
缘起最近感觉自己搭的一个项目资料汇总的项目,主页真的是一点美感都没有,非常简单粗暴。就想来点改版,让主页显得高大上一点。改版前的效果是这样的: 寻思着怎么改版,刚开始想就简单加个背景图,换掉table显示方式吧。就在网上搜索背景图,搜着搜着就鬼使神差地来到了Evan You的个人主页。这不是我第一次看到他的主页,但正是这个契机让我想要不就copy这种风格吧。初印象当我第一次看到这个主页的时候,我觉原创 2017-08-02 11:55:23 · 3446 阅读 · 0 评论