SF
teapot_py
teapot_py
注册登录
关注博客
注册登录
主页
关于
RSS
JS原型解析
wupengyu
2019-07-09
阅读 1 分钟
1.9k
JS中原型是为了实现代码重用的一种仿类机制,不过它跟类又完全不同。它通过给对象添加原型关系(即给某个对象添加__proto__属性)实现一个关联。把共有的方法和属性放到这个关联上即实现了JS的继承。简单来说就是一种委托机制。
JavaScript运行原理解析
wupengyu
2019-01-14
阅读 2 分钟
4.7k
首先说一下为什么要做成虚拟机,因为机器不同,如果没有虚拟机我们就相当于需要针对每一种机器都要进行代码编译,这样肯定是不合理的。所以为了解决这样的问题,Java引入虚拟机(VM)的概念,让编译后的代码直接跑在一台虚拟的机器上,无论最终的目标平台是什么,都在上面构建出一个虚拟的一致的虚拟机出来,就可以达到...
前端技能拾遗
wupengyu
2018-12-21
阅读 2 分钟
2.3k
解释型语言与编译型语言的区别翻译时间的不同。编译型语言在程序执行之前,有一个单独的编译过程,将程序翻译成机器语言,以后执行这个程序的时候,就不用再进行翻译了。解释型语言,是在运行的时候将程序翻译成机器语言,所以运行速度相对于编译型语言要慢。C/C++ 等都是编译型语言,而Java,C#等都是解释型语言。而JS...
设计模式应用举例
wupengyu
2018-12-06
阅读 11 分钟
2.9k
纸上得来终觉浅,学习设计模式,看了很多书,但是始终还是觉得不如直接看例子来的更加客观具体,下面主要记录了js中的几个常见的设计模式举例,供自己以后复习的时候可以直接通过例子更快更好的理解设计模式。
《你不知道的JS上》笔记
wupengyu
2018-09-06
阅读 6 分钟
2.8k
JS是编译型语言 编译发生在代码执行前几微秒,简单来说就是js在执行前要进行编译,编译过程发生在代码执行前几微妙,甚至更短。 编译的步骤 词法分析以var a = 2 为例,词法分析会将其分成三个有意义的代码块即词法单元。 语法分析将词法单元组合生成代表了程序语法的结构的树,即抽象语法书(AST)。 代码生成将AST生成...
javascript正则表达式总结
wupengyu
2017-03-27
阅读 3 分钟
4.7k
“如果罗列计算机软件领域的伟大发明,我相信绝对不会超过二十项,在这个名单当中,当然应该包括分组交换网络,Web,Lisp,哈希算法,UNIX,编译技术,关系模型,面向对象,XML这些大名鼎鼎的家伙,而正则表达式也绝对不应该被漏掉。对很多实际工作而言,正则表达式简直是灵丹妙药,能够成百倍的提高开发效率和程序质...
设计模式之中介者模式
wupengyu
2017-03-05
阅读 3 分钟
2.4k
中介者模式 我们知道在程序中各个对象之间并不是完全独立的,相互之间是可能存在关系的,并且可能会相互影响的,就像这样。 很明显这样复杂的对象关系管理起来是很混乱的。但是如果我们把它改变成下面这个样子可能就不太一样了。 即通过一个中间对象分发通知,使各个对象之间得以解耦,从混乱的多对多关系变成了对象和中...
js排序算法(一)
wupengyu
2017-01-22
阅读 3 分钟
2.2k
1. 冒泡排序算法: 即相邻的两个元素进行比较,如果前一个元素比后一个元素大,则将这两个元素换位,即将较大的元素后置。 内循环每走一次都会将前length - i个元素中的最大元素放到length - i 的位置上。 {代码...} 2. 选择排序算法: 每次循环都选择最小值,然后将其与当前位置的值进行互换操作即可 {代码...} 3. 插入排...
Buffer 对象
wupengyu
2016-10-16
阅读 2 分钟
2.6k
Buffer对象Buffer对象是Node处理二进制数据的一个接口。它是Node原生提供的全局对象,可以直接使用,不需要require('buffer')。虽然javascript对于字符串的操作十分友好。但是,在node中,很多的操作都会处理大量的二进制数据,比如文件处理,网络协议处理,图片处理。javascript自有的字符串远远不能满足这些要求,于是...
KMP模式匹配算法(一)从暴力匹配切入
wupengyu
2016-09-10
阅读 2 分钟
2.7k
我们现在有这样的一个需求那就是要在主串S中找到子串C出现的位置。可能马上会有很聪明的同学提出来,可以用indexOf方法啊。那我只能说这个方法不算。。。
ES7 装饰者模式Decorator
wupengyu
2016-08-31
阅读 1 分钟
2.3k
在程序开发过程中,我们可能希望某个类或者方法,并不是天生就具有很庞大,但是又不是很常用的功能。装饰者模式可以动态的给某个对象添加一些额外的职责,但是却不会影响其它的从这个类中派生出的其它对象。装饰者模式能够能够在不改变自身对象的基础上,在程序运行期间给对象动态的添加功能。这其实就像我们在游戏中要...
设计模式之享元模式
wupengyu
2016-07-31
阅读 3 分钟
2.2k
享元模式(flyweight)是一种用于性能优化的模式,之所以用“fly”其意为蝇量级。而享元模式的核心就是运用共享技术来有效支持大量细粒度的对象。虽然面向对象可以非常方便的解决一些扩展性的问题,但是在这个过程中系统势必会产生一些类或者对象,如果系统中存在对象的个数过多时,将会导致系统的性能下降。对于这样的问...
js同源策略之共享cookie
wupengyu
2016-07-17
阅读 2 分钟
7k
同domain(或ip),同端口,同协议视为同一个域,一个域内的脚本仅仅具有本域内的权限,可以理解为本域脚本只能读写本域内的资源,而无法访问其它域的资源。这种安全限制称为同源策略。
DOM事件
wupengyu
2016-05-22
阅读 3 分钟
2.8k
事件流描述的是页面接受事件的顺序,而IE和Netscape的浏览器开发团队提出了两种截然不同的,甚至是完全相反的事件流概念。IE的事件流是事件冒泡,而Netscape的事件流是事件捕获。
js跨域问题及常用的两种解决方案
wupengyu
2016-05-08
阅读 2 分钟
21.3k
跨域是由浏览器的同源策略引起的,即不同源(协议,域名,端口中其中有一个不同)的js是不能读取对方的资源的。当要网站中的js要请求其他网站的数据时就会产生跨域问题,就像下面这样,浏览器会报错。
设计模式之代理模式
wupengyu
2016-04-24
阅读 2 分钟
2.7k
这是在《设计模式》一书中对设计模式的定义。在软件开发过程中,我们可能会遇到过这样的情况,我们现在发现一个问题,和以前的某个问题很相似,几乎可以用统一套解决方案,而且我们还发现,在某个条件下,这个解决方案几乎就是通用的,于是我们决定给解决类似问题的解决方案取一个统一的名字,这就是设计模式。
node js模块机制与异步处理
wupengyu
2016-03-12
阅读 1 分钟
4.4k
commonJS模块机制出现的目的是为了构建js在web服务器,桌面程序,浏览器等方面形成生态系统。而node js就是这种规范的一种实现,用requird来引入其他文件,同样,npm也遵循了commonJS定义的包规范,从而形成了一套完整的生态系统。
javascript 语言学习
wupengyu
2016-02-22
阅读 2 分钟
2.1k
调用一个函数会暂停当前函数的执行,传递控制权和参数给新调用的函数,除了声明时传递的形式参数外,每个函数还会接受两个附加的参数: this和arguement.