javascript文件的命名规则求教

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了javascript文件的命名规则求教相关的知识,希望对你有一定的参考价值。

moo.fx.js与moo.fx.pack.js如此命名的两个js文件是有什么关联吗?

javascript 源文件命名没有什么硬性规定或推荐标准,完全可以凭个人喜好命名,只要符合 URI/URL 命名规则即可,习惯使用短线(-)或句点(.)作为分隔符号,最好使用小写英文字符,不要使用其他符号和扩展字符(如中文字符)。也有一些命名惯例:

    一般使用 .js 扩展名,这个扩展名的兼容性最好。其实任何扩展名都可以,只要是 text 类型、编码正确即可,但引用时须注明类型(type="text/javascript" 或 "application/javascript")及编码字符集(charset="UTF-8" 等等)。

     一般使用短线替代自然语言名称中的空格,比如 jQuery UI 1.9.0 的源文件可命名为“jquery-ui-1.9.0.js”。

    一般用句点分隔表示名称中的从属关系,范围大的在前面。比如你提到的 MooFx2 的(主模块)源文件就可命名为“moo.fx.js”,MooFx2 的可选特效包,属于 MooFx2 的子模块,可命名为“moo.fx.pack.js”;还有,比如 jQuery 的表单插件 Form,属于 jQuery 扩展插件,则可命名为“jquery.form.js”。

    经过压缩的源文件可以使用“min”表示,区别于原始版本。比如经过压缩的 jQuery 源文件可以命名为“jquery.min.js”,YUI 则习惯命名为"yui-min.js"。

上面的惯例仅供参考,最终还是尊重个人习惯。不过如果你在项目中引用了某个框架或库,就最好优先使用他们的命名习惯。另外,一个项目中最好统一使用一种命名规则,这样方便自己和其他开发人员识别。

追问

子模块可以去调用或者使用父模块中的变量或对象吗?

追答

前面提到的“主模块”和“子模块”只是形象的说法,应该说是有的代码(“上级”)必须先加载,因为里面定义了其他代码(“下级”)中需要使用的变量。在 html 文件中,只要引用了外部 JavaScript 文件,外部文件中定义的全局变量(包括全局的对象、函数等)即可在当前页面生效。其实脚本的外部引用,就是把外部源代码完整的复制到当前网页,和直接写在 HTML 源文件中没有区别,但是要注意上下级顺序。比如说:

<!-- example.html -->
<!-- ... -->
<head>
<script type="text/javascript" src="mootools-core.js"></script>
<script type="text/javascript" src="moo.fx.js"></script>
<script type="text/javascript" src="moo.fx.pack.js"></script>
</head>
<body>
<script type="text/javascript">
// ...
var mooFxAccordion = new fx.Accordion(toggles, contents, opacity: true, duration: 400);
</script>
</body>

此时,有了 <head> 部分的引用,mootools-core.js、moo.fx.js 和 moo.fx.pack.js 中的全局变量都会被加载,在这个 HTML 文件范围内随时都可以使用,并不存在主从关系。

补充一点, JavaScript 代码库的设计。moo.fx.pack.js 的全局变量不会与 moo.fx.js 的冲突,moo.fx.js 的不会与 mootools-core.js 的冲突,也就是说下级库主动兼容上级库;同时,下级库还可能会以原型(prototype)的方式对上级库的全局变量进行扩展,所以有时完全就是使用相同的变量,只是其中多了某个功能而已,比如 fx 的原型对象是在 moo.fx.js 中定义的,而经 moo.fx.pack.js 扩展后则可使用 fx.Accordion(...) 这个功能(打个比方,说明原理,实际可能不是如此,因为我也没用过这个库)。

参考技术A 一个压缩打包一个是源码吧 参考技术B pack.js是压缩过的,体积更小,方便传输
前面那个是源码,方便修改追问

可是我打开看,这两个文件里都是js代码啊;您所说的压缩是指咱们一般意义的压缩吗?

类的命名规则

类定义的命名规则,是命名空间(应用程序名称)指向应用程序的app文件夹,而类名除了命名空间和类名中最后部分之外,其他的都是文件夹的名称。类名的最后部分加上.js就是类的文件名,如Ext.define("Ledger.controller.Main"),Ledger是命名空间,在前端整体的main.js中,定义的有个name属性,controller是app文件夹下的文件夹名,最后大写的Main加上.js就是类的定义文件。

Ext.define中的define是用来定义一个类的;

以上是关于javascript文件的命名规则求教的主要内容,如果未能解决你的问题,请参考以下文章

JavaScript变量应该选择啥样的命名规则

JavaScript 命名规则

javascript中变量命名规则

javaScript中的数据类型和命名规则

文件命名规则

文件名的命名规则是啥