`
hax
  • 浏览: 961262 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

JavaScript五大关键字

    博客分类:
  • JS
阅读更多
近期做语法高亮项目的副产品,是统计了一下几个主流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
1
1
分享到:
评论
3 楼 kaelzhang 2010-02-20  
如果没有各种浏览器的差异,估计if会掉下来很多,甚至在前5之外。
2 楼 aoao 2009-05-06  
第三位:funcion  少了t 
1 楼 luolonghao 2009-05-06  
没想到if使用的最多
无责任猜测一下第6~10位估计是style,event,document,node,for(each)。

相关推荐

    javaScript基础关键字介绍.docx

    #### 五、变量声明关键字 1. **var** - 声明一个变量,作用域为函数作用域或全局作用域。 - 示例: ```javascript var message = "Hello"; ``` 2. **let (ES6+)** - 声明一个块级作用域的变量。 - 示例: ...

    javascript常用关键字

    根据给定的文件信息,以下是对“javascript常用关键字”中提到的关键知识点的详细解析: ### 1. `document.write("")` `document.write()`是用于在HTML文档中写入文本、HTML或JavaScript代码的一个方法。然而,在...

    js关键字总结 js关键字总结

    它包含了一系列的关键字、内置对象和方法,这些是理解和编写JavaScript程序的基础。下面将对提供的内容进行详细的解释与扩展。 #### 1. `document.write("")` `document.write()` 是一个在文档流中写入HTML的方法...

    javascript网页关键字高亮代码

    ### JavaScript网页关键字高亮代码详解 #### 一、概述 在网页开发中,为了提高用户体验,经常需要对页面中的特定关键词进行高亮显示。本文将详细介绍一个基于JavaScript的关键字高亮代码实现方法,并对该方法的...

    js关键字查询字体变色

    ### JavaScript关键字查询字体变色知识点解析 在网页开发与维护过程中,经常需要对特定的关键字进行高亮显示,以增强用户体验或突出重要内容。本篇文章将详细介绍一个JavaScript函数`setHeightKeyWord`,该函数用于...

    accp5.0JavaScript第五章上机答案

    本“accp5.0JavaScript第五章上机答案”应当包含了上述知识点的具体实践和解答,帮助学员巩固理论知识,提高动手能力。通过解决上机题目,学员能够更好地理解和运用JavaScript,为后续的Web开发打下坚实基础。

    JavaScript基础复习大纲

    五、JavaScript 与 Java 的区别 JavaScript 与 Java 区别没有任何关系,两个公司开发的两个不同的产品,作用与用途大不一样,但两者语法上有很多相似之处,JavaScript 并不是 Java 的子集。 六、JavaScript 代码的...

    jquery.mark-强大的jQuery关键字文本高亮插件

    3. **参数配置**:`jquery.mark`提供了丰富的选项来定制高亮行为,如忽略大小写、设置忽略的元素等。 ```javascript $("#content").mark("关键字", { separateWordSearch: false, // 是否忽略单词边界 ...

    javascript面向对象之共享成员属性与方法及prototype关键字用法.docx

    ### JavaScript面向对象之共享成员属性与方法及prototype关键字用法 #### 一、概述 JavaScript是一种基于原型的语言,它支持面向对象编程(OOP),但在实现上与其他语言有所不同。本篇文章将深入探讨JavaScript中...

    javascript试题(附答案)

    对象是键值对的集合,用大括号`{}`表示。例如,`var person = {name: 'John', age: 30};`。可以通过点操作符(`.`)或方括号操作符(`[]`)访问属性。 七、DOM操作 JavaScript可以通过DOM(Document Object Model)...

    Effective JavaScript 编写高质量JavaScript代码的68个有效方法1

    JavaScript中的作用域规则不同于其他一些语言,作者介绍了函数作用域和全局作用域的概念,以及如何正确使用var关键字来避免变量提升和意外的全局变量。此外,他还提供了一些最佳实践,如使用立即执行函数表达式...

    JavaScript权威指南(第五版) 英文版

    此外,还介绍了闭包、作用域、this关键字等高级概念,这些都是JavaScript编程中不可或缺的部分。 除此之外,书中还涵盖了错误处理、事件处理、定时器、浏览器兼容性问题等实际开发中会遇到的议题。JavaScript的版本...

    JavaScript(二)

    异步编程是JavaScript的一大特点,包括回调函数、Promise、async/await等机制。Promise用于解决回调地狱,async/await提供了更清晰的异步代码编写方式。 九、模块化 ES6引入了模块系统,通过`import`和`export`...

    javascript编程五十讲

    JavaScript编程五十讲,这是一份深入探讨JavaScript编程的资源,旨在帮助学习者通过五十个具体的实例,全面理解和掌握JavaScript的核心概念和技术。JavaScript是一种广泛应用于Web开发的脚本语言,它在网页交互、...

    面向对象JavaScript精要(英文原版pdf)

    - **第五章:封装和私有性**:讲解如何在JavaScript中实现封装以及保护私有数据的方法。 - **第六章:多态**:讨论多态性的概念及其在JavaScript中的应用。 - **第七章:混合式编程**:介绍如何结合面向对象编程与...

    JavaScript详解.doc

    变量可以用`var`关键字定义,且可以随时改变其数据类型。例如: ```javascript var x = 3; x = "hello"; ``` JavaScript中存在一个特殊的值`undefined`,表示变量未初始化。在语句结尾,JavaScript可以省略分号,但...

    JavaScript入门教程(清晰PDF)

    1. 变量:JavaScript中的变量不需要预定义类型,使用`var`关键字声明,如`var age = 25;` 2. 数据类型:包括基本类型(Number、String、Boolean、Null、Undefined)和引用类型(Object) 3. 运算符:包括算术运算符...

    JavaScript1.5核心指南

    1. **变量声明**:JavaScript1.5引入了`var`关键字来声明变量,这使得变量的作用域更加明确。在此之前,JavaScript的变量声明默认是全局的,`var`的引入增强了代码的可维护性和避免了意外的全局变量污染。 2. **...

    javascript入门教程.docx

    - **定义**:JavaScript中的函数通过`function`关键字定义,可以接收参数并返回结果。函数是JavaScript中非常重要的概念,用于封装可重用的代码块。 ```javascript function greet(name) { return "Hello, " + ...

    JavaScript语法一览表

    在JavaScript中,变量通过`var`, `let`, 或 `const` 关键字声明。变量可以存储不同类型的数据,包括基本数据类型(如数字、字符串、布尔值、null、undefined)和引用数据类型(如对象、数组、函数)。例如: ```...

Global site tag (gtag.js) - Google Analytics