随笔分类 -  javascript

摘要:Redux 的困扰与如何技术选型文章的名字我想了很久,备选项有“我再不推荐 Redux”,“Redux 为什么令我头疼”,“Redux 进化启示录”等等。通过这一系列名字我想你大概能猜到我接下来想聊的问题是什么 阅读全文
posted @ 2022-11-22 23:59 hh54188 阅读(252) 评论(0) 推荐(0) 编辑
摘要:做一个能对标阿里云的前端APM工具(上)在这篇文章里我要回答的问题也简单明了:我怎么知道我网站性能有多慢以及慢在哪?这个问题是网站上线之初我需要首先搞清楚的。 阅读全文
posted @ 2022-03-20 12:49 hh54188 阅读(390) 评论(0) 推荐(1) 编辑
摘要:什么是缓动特效 虽然缓动特效这个词你可能没有听说过,但是绝大部分人都使用过。最典型的场景是在实现动画的过程中,无论是早期的jQuery还是CSS3里的transition,都允许你添加一个缓动特效参数,例如 linear, ease-in, ease-out等等。添加参数的效果就是让物体的变化(速度 阅读全文
posted @ 2017-03-10 10:00 hh54188 阅读(1396) 评论(0) 推荐(0) 编辑
摘要:Duck punch我们先不谈AOP编程,先从duck punch编程谈起。如果你去wikipedia中查找duck punch,你查阅到的应该是monkey patch这个词条。根据解释,Monkey patch这个词来源于 guerrilla patch,意为在运行中悄悄的改变代码,而 guer... 阅读全文
posted @ 2014-08-12 10:08 hh54188 阅读(1274) 评论(0) 推荐(2) 编辑
摘要:本文同时也发表在我另一篇独立博客《Javascript的实例化与继承:请停止使用new关键字》(管理员请注意!这两个都是我自己的原创博客!不要踢出首页!不是转载!已经误会三次了!)标题当然是有一点耸人听闻了,但个人觉得使用new关键字确实并非是一个最佳的实践。换句话说,我觉得有更好的实践,让实例化和继承的工作在javascript更友好一些,本文所做的工作就是教你对new关联的操作进行一系列封装,甚至完全抛弃new关键字。在阅读本文之前你必须要对javascript中关于prototype,constructor, 以及如何实现面向对象,this关键字的使用等概念非常熟悉,否则,相信我,你会看 阅读全文
posted @ 2013-08-26 22:57 hh54188 阅读(3179) 评论(5) 推荐(6) 编辑
摘要:本文同时也发表在我另一篇独立博客《关于Unicode和URL encoding入门的一切以及注意事项》(管理员请注意!这两个都是我自己的原创博客!不要踢出首页!不是转载!已经误会三次了!)有感于,我们每天用各种的编辑器,嘴里喊着utf-8,BOM头,gbk,encode,decode,却鲜有人知道它们的由来和为什么这样做(好吧,也有可能就我一个人不知道)。最近找了很多资料,在这里做一个整理,和大家分享。第一部分:关于Unicode,UTF8,Character Sets的前生今世(原创译文)ASC II总所周知计算机只能处理数字而不能处理字符,字符也总是使用数字进行表示,所以把哪些字符由哪些数 阅读全文
posted @ 2013-08-10 13:10 hh54188 阅读(3936) 评论(2) 推荐(6) 编辑
摘要:本文同时也发表在我另一篇独立博客 《Javascript: 从prototype漫谈到继承(2)》(管理员请注意!这两个都是我自己的原创博客!不要踢出首页!不是转载!已经误会三次了!)上一篇漫谈继承的结尾我们得出了第一个比较完美的解决方案:function extend(Child, Parent) { var F = function(){}; F.prototype = Parent.prototype; Child.prototype = new F(); // 一旦重置了函数的prototype,需要重新赋值prototype.constructor, // 忽略这方面的介绍... 阅读全文
posted @ 2013-07-13 17:07 hh54188 阅读(1094) 评论(1) 推荐(0) 编辑
摘要:博客园的代码排版真难用,编辑时候是好的,一保存就是乱了——本文也同时发表在我另一独立博客上你真的了解setTimeout和setInterval吗?,可以移步至这里吧setTimeout和setInterval的基本用法我们不谈,无非是1.指定延迟后调用函数,2.以指定周期调用函数让我们想象一个意外情况,比如说下面的setIntervalsetInterval(function(){ func(i++);},100) 我们以每100毫秒调用一次func函数,如果func的执行时间少于100毫秒的话好办,在遇到下一个100毫秒前就能够执行完:但如果func的执行时间大于100毫秒,该触发... 阅读全文
posted @ 2013-06-24 21:07 hh54188 阅读(3547) 评论(3) 推荐(1) 编辑
摘要:本文同时发表在另一独立博客上http://qingbob.com/blog/%E8%B0%88javascript%E5%8F%98%E9%87%8F%E5%A3%B0%E6%98%8E这篇文章还是对基础的复习,对面试经历的一个总结。之前的面试中遇到过一道面试题var a =10;(function(){ console.log(a); var a =20;})()短短5行代码log的结果是什么?如果把var a = 20;和console.log(a)语句顺序对调呢?这道题目的答案是undefined。不是10。关键在于javascript的变量声明有一个hoisting机制,变... 阅读全文
posted @ 2013-05-12 17:45 hh54188 阅读(1382) 评论(2) 推荐(2) 编辑
摘要:本文同时发布在另一独立博客Javascript: 从prototype漫谈到继承(1)javasscript的prototype原型链一直是一个难点,这篇文章是对自己这段时期学习的一个总结,在这里不谈ECMAScript标准,也不会用UML图画出各种关系(结合这两方面谈的文章非常的多,但大部分都相当晦涩,比如汤姆大叔),只力求最浅显易懂,深入浅出,供以后自己和各位参考。javascript的function一种对象(object),他们有方法和属性,方法比如call/apply,而prototype则是function的一个属性。一旦你定义了一个函数,它即自带了一个prototype属性fun 阅读全文
posted @ 2013-05-04 12:52 hh54188 阅读(1165) 评论(0) 推荐(0) 编辑
摘要:这篇文章是对这一两年内几篇dom ready文章的汇总(文章的最后会标注参考文章),因为浏览器进化的关系,可能他们现在的行为与本文所谈到的一些行为不相符。我也并没有一一去验证,所以本文仅供参考,在具体开发中还是要以实践结果为准。当onload事件触发时,页面上所有的DOM,样式表,脚本,图片,flash都已经加载完成了。当DOMContentLoaded事件触发时,仅当DOM加载完成,不包括样式表,图片,flash。我们需要给一些元素的事件绑定处理函数。但问题是,如果那个元素还没有加载到页面上,但是绑定事件已经执行完了,是没有效果的。这两个事件大致就是用来避免这样一种情况,将绑定的函数放在这两 阅读全文
posted @ 2013-03-01 21:04 hh54188 阅读(12123) 评论(4) 推荐(3) 编辑
摘要:在这一篇中我将解释两种更高级的事件绑定模型:W3C和微软。又因为没有一种真正跨浏览器的,所以,至少现在,并不赞成使用它们。W3C和微软都开发了它们自己的事件绑定模型,用来取代Netscape的传统模型。我对微软的模型颇为不爽,但是W3C的除了一点小瑕疵外还是不错的,可不幸的是很少的浏览器支持它。w3cw3c的DOM level2对传统模型中出现的问题都给予了特别的注意。它提供了一种简单的绑定方式,你可以在同一个元素上绑定随意数量的处理函数w3c事件绑定模型的关键在于它的addEventListener()方法。你需要传入三个参数:事件类型,需要执行的函数,和一个布尔值(true or fals 阅读全文
posted @ 2012-03-06 12:43 hh54188 阅读(2148) 评论(1) 推荐(2) 编辑
摘要:我同样也是个javascript新手,怎么说呢,先学的jquery,精通之后发现了javascript的重要性,再回过头来学javascript面向对象编程。最近看了几篇有关javascript闭包的文章,包括最近正火的汤姆大叔系列,还有《javascript高级程序设计》中的文章,……我看不懂,里面有些代码是在大学教科书中看都没看过的,天书一般。幸好最近遇到两本好书《ppk on javascript》和《object-oriented JavaScript》,正字阅读中,后者还没有中文版,但前者还是建议看原版,写的不复杂,有兴趣的朋友可以看看,适合想进阶的朋友。今天就结合这两本书,用最浅显 阅读全文
posted @ 2012-03-01 01:37 hh54188 阅读(3458) 评论(12) 推荐(6) 编辑
摘要:原文地址这一次我要解释最优秀的事件处理函数绑定方式:确保当事件发生在某个html元素上时,能有相应的脚本与之对应在早期运行javascript的浏览器中,处理函数绑定只能通过行内模型。但自从DHTML彻底改变生成网页的方式后,事件绑定模型也得到拓展并且更加灵活。所以浏览器厂商引进了新的事件模型。Netscape是从第三代开始的,而IE在第四代中也同样引进。因为Netscape3已经支持新的绑定模型,所以至少在浏览器大战之前,从某种意义上来说它已经是一种执行的标准,。因此,微软为了使它的浏览器具有兼容性(因为大多数网页都遵循了Netscape的事件模型),最后一次不得不也采用了这种标准。所以两家 阅读全文
posted @ 2012-02-29 14:04 hh54188 阅读(2917) 评论(2) 推荐(5) 编辑
摘要:原文并非是是三部曲,而是一系列讲解javascript基础的文章。我是把其中三篇抽出来,作为一个整体,对理解事件绑定模型相当有帮助,原文在这里http://www.quirksmode.org/js/events_early.html今天我会解释最早期的添加事件处理函数的方法,这种方式甚至在第二代浏览器(Version2 Browers)中也得到支持早期的浏览器只支持一种函数绑定方式,由Netscape发明的。并且至今还不存在任何的兼容性问题,由于当时Netscape的龙头地位,微软如果也想创造一款能运行javascript的浏览器,它就必须服从Netscape的指定标准。所以这种模式在所有j 阅读全文
posted @ 2012-02-17 13:26 hh54188 阅读(3282) 评论(0) 推荐(3) 编辑
摘要:前言:虽然精通jquery,但对它的原型javascript却不是很了解,最近在学习javascript中遇到了一些困难,比如冒泡和捕获,很多次被提到,但又不知究竟应用在何处。找到了一些好文章解惑,在这里分享给大家。quirksmode的一系列文章都不错,通俗易懂,这篇只是一系列中的某一篇,有机会把javascript这系列都翻译给大家。原文地址在这里http://www.quirksmode.org/js/events_order.html,句子中有标注“(?)”表示我对这个句子不是很理解,可能有误。正式开始:事件的发生顺序这个问题的起源非常简单,假设你在一个元素中又嵌套了另一个元素---- 阅读全文
posted @ 2012-02-08 23:14 hh54188 阅读(16403) 评论(5) 推荐(7) 编辑