混乱的JavaScript相关名称

15年前

LiveScript

LiveScript是JavaScript语言的前身。自从Sun公司推出著名的Java语言之后,Netscape公司引进了Sun公司有关Java的程序概念,将自己原有的LiveScript重新进行设计,并改名为JavaScript。

JavaScript

JavaScript是一种广泛用于前端开发的脚本语言,前身是LiveScript。它已经被Netscape公司提交给ECMA制定为标准,称之为ECMAScript,标准编号ECMA-262。目前最新版为ECMA-262 3rd Edition。

ECMAScript

ECMAScript是由Ecma国际(前身为欧洲计算机制造商协会)通过ECMA-262标准化的脚本程序设计语言核心。所谓核心,意思是它并不作为一种独立的语言出现,而是为不同种类的宿主环境提供脚本语言的核心功能。JavaScript、JScript、ActionScript等都基于ECMAScript,都是ECMAScript的扩展。

970次阅读,0条评论

把具有数字属性名的对象转换为数组

15年前

虽然不太常用,但我们的确可以给对象添加以数字为属性名的属性:

var obj = {};
obj[0] = 1;
obj[1] = 2;

这个对象并不是数组类型,那有没有办法把它转换为数组类型呢?jQuery代码中采用了Array.prototype.slice把这种对象转换为数组,但我试了好几遍,就是不行:

var obj = {};
obj[0] = 1;
obj[1] = 2;
alert(Array.prototype.slice.call(obj));
1083次阅读,0条评论

Array.prototype.sort详解

15年前

ECMAScript中的Array类有一个排序方法,即本文主要讨论的Array.prototype.sort(下面简称sort),它的调用是很简单的:

var arr = [11, 2, 1];
alert(arr.sort());

然而,上面程序的输出结果是 "1,11,2" ,而不是我们期望的"1,2,11",这是因为在默认情况下,sort方法排序时会把元素临时转成字符串再比较。要解决这个问题,就要给sort传递一个参数,这个参数是一个进行元素比较的函数,其原型如下:

function compareFn(x, y)
1495次阅读,1条评论

em单位的历史

15年前

em是近年来讨论得比较多的一个长度单位。其实早在Jeffrey Zeldman写的《网站重构》(中文版于2004年出版)一书中就提到过这个单位,只是当时流行用px(像素)单位,所以很少人留意到em。与px这种绝对长度单位不同,em是相对长度单位,1em代表的是一个字的大小。为何要用字体的大小作单位呢?

多年前,在XHTML+CSS还没有被大多数人知道的时候,网页制作很强调一致性,也就是说让网页在所有用户的机器上的显示基本一样。这里最大的影响因素是字体大小。由于浏览器本身提供了调整字体大小的功能,因此,通过font标签的size属性设置的字体大小会随着浏览器设置而改变。幸运的是,CSS中有一个固定的单位——px。于是,人们开始使用CSS定义字体大小,通常会给body定义一个默认字体大小,在中国,这个值通常是12px。后来,有人注意到视力差的人看12px的字很吃力。那调整到14px?16px?不行,对于视力正常的人来说,12px还是最美的。那怎么办呢,难道要做好几套页面?这明显不划算,于是,浏览器的字体大小设置又一次登上历史舞台,但是在XHTML+CSS的页面中,已经不提倡用font标签定义字体大小,所以一些开发者开始应用有异曲同工效果的em单位。然而,em的一些缺点却限制了它的应用:

2343次阅读,1条评论