简明现代魔法 -> JavaScript

前端开发的成长之路

找到正确的方向,并辅以足够的时间

WEB前端研发工程师,在国内是一个朝阳职业,自07-08年正式有这个职业以来,也不过三四年的时间。这个领域没有学校的正规教育,没有行内成体系的理论指引,几乎所有从事这个职业的人都是靠自己自学成才。自学成才,一条艰辛的坎坷路,我也是这样一路走来。从2002年开始接触WEB前端研发至今已然有了9个年头,如今再回首,期间的走了很多弯路。

发布于 2011-03-23 分类:javascript

编写高质量的JavaScript代码

学习下如何写出高质量的js编码

优秀的Stoyan Stefanov在他的新书中(《Javascript Patterns》)介绍了很多编写高质量代码的技巧,比如避免使用全局变量,使用单一的var关键字,循环式预存长度等等。这篇文章不仅仅从代码本身来考虑如何优化编码,也从代码的设计阶段来考虑,包括书写API文档,同事的review,使用JSLint。

发布于 2011-03-21 分类:javascript

js轮播选择:午餐吃啥?

最愁就是每天中午吃什么了

最愁就是每天中午吃什么了,有空就做了个 JavaScript 轮播随机选择。会轮播预先自定义的菜单中,然后点选定的时候确定一款。代码可以查看本页源代码获得,你可以自定义修改菜单数组。

发布于 2011-03-19 分类:javascript

下拉选框的联动的自动提交

自动获得大栏目下的小分类

下拉框的联动应用得很广泛,对于一些有大栏目,小栏目的网站设计来说,可以省更多地方。比如一些信息分类网站,他们的大栏目多,大栏目下的子栏目页多,使用这种联动设计可以方便用户找到自己需要提交信息的栏目。选择第二个子栏目的时候,还可以自动提交。

发布于 2011-03-11 分类:javascript

金额数字格式化与四舍五入

可以控制小数位数,自动四舍五入

下面是一个格式化函数,可以控制小数位数,自动四舍五入。例如:12345格式化为12,345.00,12345.6格式化为12,345.60,12345.67格式化为 12,345.67,只留两位小数。调用fmoney("12345.675910", 3),返回12,345.676。

发布于 2011-03-08 分类:javascript

鼠标移过时显示提示信息

两种不同的方法优劣比较

有时候为了简洁设计,当用户鼠标未经过时,我们不用向用户显示操作提示。直到用户鼠标经过了,就显示相应的操作提示。这种设计在很多地方都用得上。先看看下面的演示。

发布于 2011-03-04 分类:javascript

JavaScript中继承机制是如何实现的

实际上ECMAScript中并没有对类的定义

要用 ECMAScript 实现继承机制,您可以从要继承的基类入手。所有开发者定义的类都可作为基类。出于安全原因,本地类和宿主类不能作为基类,这样可以防止公用访问编译过的浏览器级的代码,因为这些代码可以被用于恶意攻击。选定基类后,就可以创建它的子类了。是否使用基类完全由你决定。

发布于 2011-03-03 分类:javascript

简单的图片显示与隐藏

一个比较简单的javascript代码

今天有个小问题,在iPhone上显示所有图片。但是不可能一次显示全部,只能显示图片的名称列表。需要点击图片名,然后显示图片,再次点击的话,就隐藏图片。一个比较简单的javascript代码,在这里记录下,方便以后取用。

发布于 2011-03-02 分类:javascript

理解JavaScript大括号的语义作用

{}和()确实是JS里面难以又必须弄清楚的

function(){} ,根据词法分析期对token的有效分组。function被看成这个ExpressionStatement 的start 位置的第一个token元素。这是EMCA262所不允许的。不允许的原因很明确,就是怕引起函数表达式和函数声明的歧义。你可以理解为 function 关键字永远不能在一个ExpressionStaement的首位。

发布于 2011-03-01 分类:javascript

Javascript输入提示的实现

输入字符会把以输入字符开头的提示出来

在你输入的时候,输入框下面会出现一些与你输入相匹配的内容,这是一个很人性化的设计,比如Google的搜索提示。JQuery可以比较方便地实现这个功能,但是为了用这个功能而加载很多js插件,这样效率明显下降了很多,而且这个东西平时也很常用,所以用原生JavaScript写一个。

发布于 2011-03-01 分类:javascript

JavaScript去除字符串两边空格trim

去除字符串左右两端的空格

去除字符串左右两端的空格,在大部分编程语言中,比如PHP、vbscript里面可以轻松地使用 trim、ltrim 或 rtrim实现。但在js中却没有这3个内置方法,需要手工编写。下面的实现方法是用到了正则表达式,效率不错,并把这三个方法加入String对象的内置方法中去。

发布于 2011-03-01 分类:javascript

从数据访问层上提高js代码的执行效率

标识符解析、作用域链、运行期上下文、原型链、闭包

本文讲到的是如何从数据访问层面上提高JS 代码的执行效率。总的来讲有以下几条原则:函数中读写局部变量总是最快的,而全局变量的读取则是最慢的;尽可能地少用with 语句,因为它会增加with 语句以外的数据的访问代价;闭包尽管强大,但不可滥用,否则会影响到执行速度以及内存;嵌套的对象成员会明显影响性能,尽量少用;

发布于 2011-02-28 分类:javascript

JavaScript的相等与全等操作符

其中的转换规则是什么样的呢

全等与不全等的逻辑比较简单,而今天我们要关注的是我们平时用得比较多的第二种操作符:相等与不相等。当我们对两个操作数用 == 进行比较的时候,我们分两种情况:== 两边操作数的类型相同与不相同。我们都知道类型不相同时需要先转换类型,但是其中的转换规则是什么样的呢?也许许多人都不曾仔细研究过。

发布于 2011-02-27 分类:javascript

提升JavaScript的加载与执行效率

高性能网站建设进阶指南

JS 有个很无语的阻塞特性,就是当浏览器在执行JS 代码时,不能同时做其他任何事情,无论其代码是内嵌的还是外部的。浏览器在碰到一个引入外部JS 文件的script标签时会停下所有工作来下载并解析执行它,在这个过程中,页面渲染和用户交互完全被阻塞了,为了避免页面加载时的停顿甚至空白页的出现,JS 脚本应尽量放置在页面底部。

发布于 2011-02-24 分类:javascript

JavaScript开发的一些规范

这一能力对于每一个程序员来说都是非常重要的

作为一名开发人员(WEB前端JavaScript开发),不规范的开发不仅使日后代码维护变的困难,同时也不利于团队的合作,通常还会带来代码安全以及执行效率上的问题。本人在开发工作中就曾与不按规范来开发的同事合作过,与他合作就不能用"愉快"来形容了。现在本人撰写此文的目的除了与大家分享一点点经验外,更多的是希望对未来的合作伙伴能够起到一定的借鉴作用。

发布于 2011-02-17 分类:javascript
 

copyright © 2009 简明现代魔法    学习、分享、进步

power by Gonn 感谢所有关心和支持本站的朋友们