javascript自定义事件

浏览器内置了一些javascript的方法,比如说click, mouseover, mousein … 可以在用户进行了一些浏览器内置的默认行为(点击,鼠标滑过DOM)的时候会触发。
所谓自定义事件,就是有别于有别于带有浏览器特定行为的事件(类似click, mouseover, submit, keydown等事件),事件名称可以随意定义,可以通过特定的方法进行添加,触发以及删除。
jQuery的有个bind方法,可以添加一些用户自定义的事件,再用trigger的方法来触发。

JavaScript高质量代码之重绘和重排

什么是重排和重绘


浏览器下载完页面中的所有组件——HTML标记、JavaScript、CSS、图片之后会解析生成两个内部数据结构——DOM树和渲染树。

DOM树表示页面结构,渲染树表示DOM节点如何显示。DOM树中的每一个需要显示的节点在渲染树种至少存在一个对应的节点(隐藏的DOM元素disply值为none 在渲染树中没有对应的节点)。渲染树中的节点被称为“帧”或“盒”,符合CSS模型的定义,理解页面元素为一个具有填充,边距,边框和位置的盒子。一旦DOM和渲染树构建完成,浏览器就开始显示(绘制)页面元素。

function表达式和function语句

首先我们看下什么是function表达式和function语句:

1
2
function f() {}       //function语句
var f = function() {} //function表达式

javascript语言中的function语句在解析时会发生被预先加载的情况。这意味着不管function被放置在哪里,它都会被移动到被定义时所在的作用域顶层,造成了javascript函数不必先声明后使用的特性,但这种特性也导致了javascript的混乱。下面看两段代码:

XMLHttpRequest 2.0

在十几年前,一个称为Ajax的东西对前端行业造成了深远影响,不仅是javascript语言,而包括前端地位、职位兴起以及工作分工等。抛开IE早期的浏览器不谈,其他浏览器的Ajax实际上都是借助XMLHttpRequest实现的。
在XMLHttpRequest 1.0时代(暂时这么叫吧),XMLHttpRequest配套着DOMString和Document数据类型,所向披靡,无处不在。
关于DOMStringDocument数据类型请猛戳。
DOMString和Document都是XMLHttpRequest 1.0时代的数据类型,元老级。我们这里主要谈一下XMLHttpRequest 2.0新增的!

JavaScript高质量代码之类型转换

本文保存一些JavaScript代码的高质量写法,以便查阅和进步。

使用!!和+进行类型判断和转换

javascript是一门弱类型的语言,通常我们在编写javascript代码时往往会用到许多类型转换的东西,对于string,number,boolean等基础类型,==和===是有区别的,对于array,function,object等引用类型,==和===是没有区别的,可以通过javascript的类型转换技巧来实现判断。