近期做语法高亮项目的副产品,是统计了一下几个主流JS工具包中各关键字的使用频率。虽然不同代码库的前五位的关键字的顺位有所差别,但是与五名之后的差距都是非常显著,第五位都要比第六位多至少一倍,前五位关键字占所有关键字比例都超过60%,最多的Prototype库甚至超过90%。
以下顺位为我综合各关键字在各个代码库中的排位以及其他因素所评定:
第五位:
var
未声明就使用的全局变量是bug之源,所以基本上有多少变量就应该有多少var。不过因为多个变量可以用一句var来声明,所以var谦虚的位于第五位。
第四位:
return
有多少function,就有多少return,一些function还有多个return。虽然也有不少function什么都不return,但是就面向对象而言,你可以return this来构成链式操作,就函数式编程来说,一切函数都应该有返回值。return在排位上本来可以更靠前,不过它是附属于function的,并且未来JS语言的改进会使得return关键字在大多数时候都能省略,所以其排位掉出三甲。
第三位:
funcion
function可以说是JS编程的核心概念。去掉this关键字,我们仍然还能写JS代码,少了function关键字,我们可就什么都干不了了。作为一个如此常用的关键字,function有整整8个字母长,如果像许多语言那样改用def,甚至在某些语境下可以完全省略的话(比如groovy中可以这样:[1,2,3].each{print(it)}),我们的手指头可要轻松许多了——可惜语言标准委员会一点都不为我们考虑,未来我们还将一遍又一遍的狂打f,u,n,c,t,i,o,n。我们多么希望能少打点function啊。有鉴于此,function在排位上屈居第三。
第二位:
this
this可以说是“OO”的标志。在“非常OO”的Ext中,this甚至以超过后四位总和,占所有关键字43%的压倒性优势排名第一。然而许多语言里,this都可以省略,只是在JavaScript中,每次都要明确的告诉它是this不是that,所以this才泛滥成灾……故此,多到令人生厌的this只能排名第二。
------------------------- 猥琐的分割线 -------------------------
第一位:
if
其实我们人生的大部分精力都是花在Yes Or No的问题上,写程序也不例外。所以if这个最最寻常不过,也是最短的关键字,在排位上能雄踞榜首也就顺理成章了。
附录:统计数据
代码库:
1. jQuery 1.3.2
2. Prototype 1.6.0.3
3. Base2 1.0
4. Ext 2.0.2
5. Dojo 0.4.3
以下,Total为所有关键字的出现次数。关键字对应的三栏数据分别为出现次数、占所有关键字比例、从多到少的排位。
jQuery Prototype Base2 Ext Dojo
------------------------------------------------------------------
Total 2534 2872 1148 24779 6195
------------------------------------------------------------------
if 475 19% 1 395 14% 4 150 13% 5 3022 12% 2 1002 16% 1
return 313 12% 4 576 20% 1 162 14% 4 1739 7% 5 613 10% 5
function 365 14% 3 538 19% 2 210 18% 1 2808 11% 3 799 13% 3
this 455 18% 2 474 17% 3 201 18% 2 10649 43% 1 809 13% 2
var 263 10% 5 347 12% 5 164 14% 3 2348 9% 4 744 12% 4
分享到:
相关推荐
ES6,全称ECMAScript 6.0,正式名称为ECMAScript 2015,是JavaScript的下一个版本标准,于2015年6月17日发布。它的目标是使得JavaScript语言可以用来编写复杂的大型应用...ES6新特性包括:let关键字、const关键字等。
107.定义常量的关键字:const,定义变量的关键字:var 108.isNaN()是JavaScript 的内部函数,对参数进行运算,判断其是否为非数字。若参数为NaN (注释:非数值值),则返回true;否者返回false;parseInt 也是一个...
13.2.6 “this”关键字 13.3 标准事件模型 13.3.1 起泡和捕捉--浏览器的事件传播 13.3.2 事件处理函数的注册 13.3.3 把对象注册为事件处理程序 13.3.4 事件模块和事件类型 13.3.5 关于...
13.7 实例五:CSS实现PPT幻灯片 13.8 实例六:灯光效果 13.9 实例七:舞台灯光 13.10 实例八:探照灯 13.11 实例九:鼠标文字跟随 第14章 CSS与XML的综合运用 14.1 XML基础 ...
|--x.toFixed(num):可把Number四舍五入为指定小数位数(num:0-20)的数字 |--x.toString():用于把一个 Number 对象转换为一个字符串,并返回结果 19.正则表达式对象:(专门用于查找和验证) reg.test(‘要验证的完整...
107.定义常量的关键字:const,定义变量的关键字:var toString(Array.toString 方法) public toString() : String 返回一个字符串值,该值表示所指定的 Array 对象中的元素。数组中的每一个元素(从索引 0 开始到...
适用场合:任何小数与0 做 按位或的操作,可以快速转换为整数(并非四舍五入) 5 | 0 101 000 ==== 101 3、按位 异或 :^ 语法:a ^ b 特点:将 a 和 b 先转换为二进制,按位操作,对应位置上的两个数字,...
1.本书1~16章所附代码的运行环境 操作系统:Windows 2003、Windows XP Professional,或者Windows 2000 ...当输入搜索关键字时,自动向服务器发送请求,查询相关的关键字,并及时提示用户可输入的关键字。 ...
五大约束 301 索引 303 数据库的备份与恢复 304 内容总结 308 独立实践 309 第十八章:数据库(三) 310 学习目标: 310 存储过程 311 触发器 313 函数 314 规则 314 事务 315 while语句 317 case语句 317 内容总结...
float 32bit, 9位有效数字,含小数(四舍五入)(小数点算一位,正负号不算) double 64bit, 18位有效数字 注:float 和 double 的小数部分不可能精确,只能近似。 比较小数时,用 double i=0.01; if ( i - 0.01 ) ...
前台模块主要包括五大模块内容:客 户登录模块、客户注册模块、客户留言模块、客户查看留言模块和修改注册信息模块; 后台模块主要包括六大模块内容:管理员登陆模块、管理员修改密码模块、企业资讯管 理模块、客户...
通过中位数将五列SAS数据集分为上下数据集关键字:sas sql join合并大数据分析宏oracle teradata mysql sas社区stackoverflow统计信息人工智慧AI Python R Java Javascript WPS Matlab SPSS Scala Perl CC#Excel MS...
某些其他 JavaScript 库中的函数(比如 Prototype)同样使用 $ 符号。 jQuery 使用名为 noConflict() 的方法来解决该问题。 var jq=jQuery.noConflict(),帮助您使用自己的名称(比如 jq)来代替 $ 符号。 亲自试一...
本系统主要分为五大功能模块。 用户操作:主要包括用户登录、注册和用户个人信息修改的功能,此外用户还可以收藏喜欢的歌单,评论歌单。 用户浏览:全部页面开发完成之后,用户可以随意浏览歌单、歌手、专辑和榜单...
15 第二节 网站的总体设计 16 第三节 整体风格设计 19 一、页面属性设计 19 二、色彩搭配 19 三、连接效果 20 四、导航设计 20 五、细节设计 21 第四节 首页设计 21 一、DIV分布和概述 21 二、搜索关键字与描述 ...
五、企业荣誉.企业可以在后台自主添加企业的荣誉,企业形象相关的图片和文字 六、营销网络,分为国内网络和国际网络两个部分 七、人才招聘,非常试用的栏目.企业可以后台发布人才招聘信息和人才政策. 用户可以...
9-7 4.static关键字(静态方法) 面向对象编程三大特性① 9-7 5.面向对象编程三大特性② 9-7 6.面向对象编程三大特性③ 9-9 1.回顾 9-9 2.面向对象编程三大特性④ 9-9 3.面向对象编程三大特性⑤ 抽象类 9-9 4.接口 9-9...
9-7 4.static关键字(静态方法) 面向对象编程三大特性① 9-7 5.面向对象编程三大特性② 9-7 6.面向对象编程三大特性③ 9-9 1.回顾 9-9 2.面向对象编程三大特性④ 9-9 3.面向对象编程三大特性⑤ 抽象类 9-9 4.接口 9-9...
9-7 4.static关键字(静态方法) 面向对象编程三大特性① 9-7 5.面向对象编程三大特性② 9-7 6.面向对象编程三大特性③ 9-9 1.回顾 9-9 2.面向对象编程三大特性④ 9-9 3.面向对象编程三大特性⑤ 抽象类 9-9 4.接口 9-9...
12.2 CGI应用程序和JavaScript 190 12.3 自己编写脚本 190 12.4 CGI是如何工作的 190 12.5 调用CGI程序 190 12.6 HTTP标题 191 12.7 CGI和环境变量 192 12.8 URL编码和解码 194 12.8.1 使用rawurlencode函数 194 ...