JavaScript程序编码规范
2008.01.14 来自:译言cloudwater 译 Douglas Crockford 共有评论(1)条发表评论 [收藏
到我的网摘]
这是一套适用于JavaScript程序的编码规范。它基于Sun的Java程序编码规范。但进行了大幅度的修改, 因为JavaScript不是Java。
软件的长期价值直接源于其编码质量。在它的整个生命周期里,一个程序可能会被许多人阅读或修改。如果一个程序可以清晰的展现出它的结构和特征,那就能减少在以后对其进行修改时出错的可能性。
编程规范可以帮助程序员们增加程序的健壮性。
所有的JavaScript代码都是暴露给公众的。所以我们更应该保证其质量。
保持整洁很重要。
JavaScript文件
JavaScript程序应独立保存在后缀名为.js的文件中。
JavaScript代码不应该被包含在HTML文件中,除非这是段特定只属于此部分的代码。在HTML中的JavaScript代码会明显增加文件大小,而且也不能对其进行缓存和压缩。
filename.js>应尽量放到body的后面。这样可以减少因为载入script而造成其他页面内容载入也被延迟的问题。也没有必要使用 language或者type属性。MIME类
型是由服务器而非scripttag来决定的。
缩进
缩进的单位为四个空格。避免使用Tab键来缩进(即使现在已经是21世纪了),也始
终没有个统一的Tab长短标准。虽然使用空格会增加文件的大小,但在局域网中几乎可以忽略,且在最小化过程中也可被消除掉。
每行长度
避免每行超过80个字符。当一条语句一行写不下时,请考虑折行。在运算符号,最好
是逗号后换行。在运算符后换行可以减少因为复制粘贴产生的错误被分号掩盖的几率。
下一行应该缩进8个空格。
注释
不要吝啬注释。给以后需要理解你的代码的人们(或许就是你自己)留下信息是非常有用的。注释应该和它们所注释的代码一样是书写良好且清晰明了。偶尔的小幽默就更不
错了。记得要避免冗长或者情绪化。
及时地更新注释也很重要。错误的注释会让程序更加难以阅读和理解。
让注释有意义。重点在解释那些不容易立即明白的逻辑上。不要把读者的时间浪费在阅读类似于:
i = 0; //让i等于0
使用单行注释。块注释用于注释正式文档和无用代码。
变量声明
所有的变量必须在使用前进行声明。JavaScript并不强制必须这么做,但是这么做可以让程序易于阅读,且也容易发现那些没声明的变量(它们会被编译成全局变量)。
将var语句放在函数的首部。
最好把每个变量的声明语句单独放到一行,并加上注释说明。所有变量按照字母排序。
var currentEntry; // 当前选择项 var level; // 缩进程度var size; // 表格大小
JavaScript没有块范围,所以在块里面定义变量很容易引起C/C++/Java程序员们
的误解。在函数的首部定义所有的变量。
尽量减少全局变量的使用。不要让局部变量覆盖全局变量。
函数声明
所有的函数在使用前进行声明。内函数的声明跟在var语句的后面。这样可以帮助判断哪些变量是在函数范围内的。
函数名与((左括号)之间不应该有空格。) (右括号)与开始程序体的{(左大括号)之间应插入一个空格。函数程序体应缩进四个空格。 }(右大括号)与声明函数的那一行代码头部对齐。
function outer(c, d) { var e = c * d; function inner(a,
b) { return (e * a) + b; } return inner(0,
1); }
下面这种书写方式可以在JavaScript中正常使用,因为在JavaScript中,函数和对象的声明可以放到任何表达式允许的地方。且它让内联函数和混合结构具有最好的可读性。
function getElementsByClassName(className)
{
var results = [];
walkTheDOM(document.body, function (node)
{
var a; // 类名数组
var c = node.className; // 节点的类名
var i; // 循环计数器
// If the node has a class name, then split it into a list of simple names.
// If any of them match the requested name, then append the node to the set of results.
if (c) { a = c.split(' ');
for (i = 0; i < a.length; i += 1) {
if (a[i] === className) {
esults.push(node);
break; } } } });
return results; }
如果函数是匿名函数,则在function和((左括号)之间应有一个空格。如果省略了空格,否则会让人感觉函数名叫作function。
div.onclick = function (e) { return false; }; that = { method: function () { return this.datum; }, datum: 0 };
尽量不使用全局函数。
命名
变量名应由26个大小写字母(A..Z,a..z),10个数字( 0..9),和_(下划线)组成。避免使用国际化字符(如中文),因为它们不是在任何地方都可以被方便的阅读和理解。不要在命名中使用 $(美元符号)或者(反斜杠)。
不要把_(下划线)作为变量名的第一个字符。它有时用来表示私有变量,但实际上JavaScript并没提供私有变量的功能。如果私有变量很重要, 那么使用私有成员的形式。应避免使用这种容易让人误解的命名习惯。
大多数的变量名和方法命应以小写字母开头。
必须与 new共同使用的构造函数名应以大写字母开头。当new被省略时JavaScript 不会有任何编译错误或运行错误抛出。忘记加 new时会让不好的事情发生(比如被当成一般的函数),所以大写构造函数名是我们来尽量避免这种情况发生的唯一办法。
全局变量应该全部大写。(JavaScript没有宏或者常量,所以不会因此造成误会)
语句
简单语句
每一行最多只包含一条语句。把;(分号)放到每条简单语句的结尾处。注意一个函数赋值或对象赋值语句也是赋值语句,应该以分号结尾。
JavaScript可以把任何表达式当作一条语句。这很容易隐藏一些错误,特别是误加分号的错误。只有在赋值和调用时,表达式才应被当作一条单独的语句。
复合语句
复合语句是被包含在{ }(大括号)的语句序列。
?被括起的语句必须多缩进四个空格。
?{(左大括号)应在复合语句其实行的结尾处。
?}(右大括号)应与{(左大括号)的那一行的开头对齐
?大括号应该在所有复合语句中使用,即使只有一条语句,当它们是控制结构的一部分时, 比如一个if 或者for语句。这样做可以避免以后添加语句时造成的错误。
标示
语句标示是可选的,只有以下语句必须被标示:while, do,for,switch。
return语句
一条有返回值的return语句不要使用( )(括号)来括住返回值。如果返回表达式,则表达式应与return关键字在同一行,以避免误加分号错误。
if语句
if语句应如以下格式:
if (condition){
statements;
}
if (condition) {
statements;
} else {
statements;
}
if (condition) {
statements;
} else if (condition) {
statements;
} else {
statements;
}
for语句
for语句应如以下格式:
for (initialization;condition ;update) {
statements;
}
for (variable in object)if (filter) {
statements;
}
第一种形式的循环用于已经知道相关参数的数组循环。
第二种形式应用于对象中。object原型中的成员将会被包含在迭代器中。通过预先定义hasOwnProperty方法来区分真正的object成员是个不错方法: for (variable in object) if (object.hasOwnProperty(variable )){ statements;
}
while语句
while语句应如以下格式:
while (condition){
statements;
}
do语句
do语句应如以下格式:
do {
statements;
} while (condition);
不像别的复合语句,do语句总是以;(分号)结尾。
switch语句
switch语句应如以下格式:
switch (expression){
case expression:
statements;
default:
statements;
}
每个case与switch对齐。这可避免过分缩进。
每一组statements(除了default应以break,return,或者throw结尾。不要让它顺次往下执行。
try语句
try语句应如以下格式:
try {
statements;
} catch (variable){
statements;
}
try {
statements;
} catch (variable){
statements;
} finally {
statements;
}
continue语句
避免使用continue语句。它很容易使得程序的逻辑过程晦涩难懂。
with语句
不要使用with语句。
空白
用空行来将逻辑相关的代码块分割开可以提高程序的可读性。
空格应在以下情况时使用:
?跟在((左括号)后面的关键字应被一个空格隔开。
while (true) {
?函数参数与((左括号)之间不应该有空格。这能帮助区分关键字和函数调用。
?所有的二元操作符,除了.(点)和((左括号)和[(左方括号)应用空格将其与操作数隔开。
?一元操作符与其操作数之间不应有空格,除非操作符是个单词,比如typeof。
?每个在控制部分,比如for语句中的; (分号)后须跟一个空格。
每个,(逗号)后应跟一个空格。
另外的建议
{}和[]
使用{}代替new Object()。使用[]代替new Array()。
当成员名是一组有序的数字时使用数组来保存数据。当成员名是无规律的字符串或其他时使用对象来保存数据。
,(逗号)操作符
避免使用逗号操作符,除非在特定的for语句的控制部分。(这不包括那些被用在对象定义,数组定义,var语句,和参数列表中的逗号分隔符。)
作用域
在JavaScript中块没有域。只有函数有域。不要使用块,除非在复合语句中。
赋值表达式
避免在if和while语句的条件部分进行赋值。
if (a = b) {
是一条正确语句?或者
if (a == b) {
才是对的?避免这种不容易判断对错的结构。
===和!==操作符。
使用===和!==操作符会相对好点。==和!=操作符会进行类型强制转换。特别是, 不要将==用于与错值比较( false,null,undefined,“”, 0,NaN)。
令人迷惑的加号和减号
小心在+后紧跟+或++。这种形式很容易仍人迷惑。应插入括号以便于理解。
total = subtotal + +myInput.value;
最好能写成
total = subtotal + (+myInput.value);
这样+ +不会被误认为是++。
eval是恶魔
eval是JavaScript中最容易被滥用的方法。避免使用它。
eval有别名。不要使用Function构造器。不要给setTimeout或者 setInterval 传递字符串参数。
原文地址:https://www.wendangku.net/doc/ed2222903.html,/code.html
前端开发设计规范 目录 前端开发设计规范 (1) 一、HTML使用规范 (1) 1.1、页面文件命名规范 (1) 1.2、页面head部分书写规范 (1) 1.3、HTML元素开发规范 (2) 1.3.1、HTML元素书写规范 (2) 1.3.2、HTML元素命名规范 (3) 二、WEB页面开发规范 (4) 2.1、错误跳转页面的处理 (4) 2.2、提示信息的处理 (4) 2.3、页面的返回 (4) 2.4、提交前数据的判断验证 (4) 2.5、删除操作 (5)
2.6、页面中java代码的使用 (5) 2.7、网站页面布局规范 (5) 2.7.1、前台页面尺寸 (5) 2.7.2、标准网页广告图标规格(参考) (6) 2.7.3、页面字体 (6) 2.7.4、字体颜色 (7) 三、javaScript开发规范 (7) 3.1、javaScript文件命名规范: (7) 3.2、javaScript开发规范 (7) 3.2.1、javaScript书写规范 (7) 3.2.2、javaScript命名规范 (8) 四、css样式规范 (10) 4.1、css样式文件命名规范 (10) 4.1.1、通用样式文件命名规范: (10) 4.1.2、业务类样式文件命名规范 (10) 4.1.3、css样式文件命名须知 (11)
4.2、css样式文件存放目录规范 (11) 4.3、css样式定义规范 (11) 4.3.1、css样式内容顶部注释规范 (11) 4.3.2、css样式内容注释规范 (12) 4.3.3、css样式定义规范 (12) 4.3.4、css样式常用id的命名 (13) 4.3.5、css样式常用class的命名 (16) 4.4、css样式书写规范 (16) 4.4.1、css样式排版规范 (16) 4.4.2、css样式书写风格规范 (16) 4.4.3、css样式属性定义顺序规范 (17) 4.4.4、css样式其他规范 (18) 4.4.5、css样式 Hack的使用 (19) 4.4.6、字体定义规范 (19) 4.4.7、css样式检测 (20) 4.4.8、注意事项 (20)
快读参考 核心 API 请使用下面的风格: 下面的虽然不是必要的,但建议使用: 命名规范 1.变量名称必须为小写字母。 2.类的命名使用骆驼命名规则,例如: Account, EventHandler 3.常量必须在对象(类)或者枚举变量的前部声明。枚举变量的命名必须要有实际 的意义,并且其成员必须使用骆驼命名规则或使用大写: var NodeTypes = { Element : 1, DOCUMENT: 2 } 4.简写单词不能使用大写名称作为变量名: getInnerHtml(), getXml(), XmlDocument
5.方法的命令必须为动词或者是动词短语:
obj.getSomeValue() 6.公有类的命名必须使用混合名称(mixedCase)命名。 7.CSS 变量的命名必须使用其对应的相同的公共类变量。 8.私有类的变量属性成员必须使用混合名称(mixedCase)命名,并前面下下划线(_)。 例如: var MyClass = function(){ var _buffer; this.doSomething = function(){ }; } 9.变量如果设置为私有,则前面必须添加下划线。 this._somePrivateVariable = statement; 10.通用的变量必须使用与其名字一致的类型名称: setTopic(topic) // 变量 topic 为 Topic 类型的变量 11.所有的变量名必须使用英文名称。 12.变量如有较广的作用域(large scope),必须使用全局变量;此时可以设计成一个 类的成员。相对的如作用域较小或为私有变量则使用简洁的单词命名。 13.如果变量有其隐含的返回值,则避免使用其相似的方法: getHandler(); // 避免使用 getEventHandler() 14.公有变量必须清楚的表达其自身的属性,避免字义含糊不清,例如: MouseEventHandler,而非 MseEvtHdlr。 请再次注意这条规定,这样做得的好处是非常明显的。它能明确的表达表达 式所定义的含义。例如: dojo.events.mouse.Handler // 而非 dojo.events.mouse.MouseEventHandler 15.类/构造函数可以使用扩展其基类的名称命名,这样可以正确、迅速的找到其基类 的名称: EventHandler UIEventHandler MouseEventHandler 基类可以在明确描述其属性的前提下,缩减其命名: MouseEventHandler as opposed to MouseUIEventHandler. 特殊命名规范
密级:内部1引言 (2) 1.1编写目的 (2) 1.2变更记录 (2) 1.3定义 (2) 1.4参考资料 (2) 2HTML (2) 2.1命名 (2) 2.2标签 (3) 2.3排版 (3) 2.4CSHTML (3) 3JS (3) 3.1组织 (3) 3.2命名 (4) 3.3变量 (4) 3.4方法 (4) 3.5对象及控件 (4) 3.6第三方库 (4) 3.7排版 (4) 3.8AJAX (5) 4CSS (5) 4.1组织 (5) 4.2命名 (5) 4.3兼容性 (5) 4.4第三方库 (6) 4.5排版 (6)
前台编码规范 1引言 1.1编写目的 帮助开发团队形成一致的前台编码风格,并指出某些容易引发BUG的不良编码习惯,预期读者为长沙安晨信息科技有限公司的全体开发人员。 1.2变更记录 版本号作者日期备注 1.0Aaron7/1/2014 1.1Aaron7/31/2014Add examples 1.2Aaron8/4/2014Update the format 1.3定义 术语定义备注 HTML Hypertext Markup Language JS Javascript CSS Cascading Style Sheet 1.4参考资料 2HTML 2.1命名 文件名采用帕斯卡命令法,所有单词首字母大写,词汇缩小可以全部大写,单词间不加任何连接符。例如“UserLogin.cshtml”
?文件名应见名知义,能清晰描述页面主要功能,例如“AddUser.cshtml”。 2.2标签 ?所有标签都应该正确关闭,例如“
快读参考 核心API请使用下面的风格: 结构规则注释 模块小写不要使用多重语义(Never multiple words) 类骆驼 公有方法混合其他的外部调用也可以使用lower_case(),这样的风格 公有变量混合 常量骆驼或大写 下面的虽然不是必要的,但建议使用: 结构规则 私有方法混合,例子:_mixedCase 私有变量混合,例子:_mixedCase 方法(method)参数混合,例子:_mixedCase,mixedCase 本地(local)变量混合,例子:_mixedCase,mixedCase 命名规范 1.变量名称必须为小写字母。 2.类的命名使用骆驼命名规则,例如: Account,EventHandler 3.常量必须在对象(类)或者枚举变量的前部声明。枚举变量的命名必须要有实际 的意义,并且其成员必须使用骆驼命名规则或使用大写: var NodeTypes={ Element:1, DOCUMENT:2 } 4.简写单词不能使用大写名称作为变量名: getInnerHtml(),getXml(),XmlDocument
5.方法的命令必须为动词或者是动词短语: obj.getSomeValue() 6.公有类的命名必须使用混合名称(mixedCase)命名。 7.CSS变量的命名必须使用其对应的相同的公共类变量。 8.私有类的变量属性成员必须使用混合名称(mixedCase)命名,并前面下下划线(_)。 例如: var MyClass=function(){ var_buffer; this.doSomething=function(){ }; } 9.变量如果设置为私有,则前面必须添加下划线。 this._somePrivateVariable=statement; 10.通用的变量必须使用与其名字一致的类型名称: setTopic(topic)//变量topic为Topic类型的变量 11.所有的变量名必须使用英文名称。 12.变量如有较广的作用域(large scope),必须使用全局变量;此时可以设计成一个 类的成员。相对的如作用域较小或为私有变量则使用简洁的单词命名。 13.如果变量有其隐含的返回值,则避免使用其相似的方法: getHandler();//避免使用getEventHandler() 14.公有变量必须清楚的表达其自身的属性,避免字义含糊不清,例如: MouseEventHandler,而非MseEvtHdlr。 请再次注意这条规定,这样做得的好处是非常明显的。它能明确的表达表达 式所定义的含义。例如: dojo.events.mouse.Handler//而非 dojo.events.mouse.MouseEventHandler 15.类/构造函数可以使用扩展其基类的名称命名,这样可以正确、迅速的找到其基类 的名称: EventHandler UIEventHandler MouseEventHandler 基类可以在明确描述其属性的前提下,缩减其命名: MouseEventHandler as opposed to MouseUIEventHandler.
产品源代码质量检测:JavaScript 编码规范 (A0)
目录 前言 ................................................................ 错误!未定义书签。 1概述 (4) 2文件引用及参考 (4) 3声明规则 (4) 3.1变量 (4) 3.2函数 (6) 4命名规则 (7) 4.1构造函数/类 (7) 4.2变量/对象属性 (7) 4.3常量 (8) 4.4命名空间 (8) 4.5函数/对象方法 (8) 4.6事件 (9) 5注释规则 (9) 5.1通用注释规则 (9) 5.2 JavaScript文件注释 (10) 5.3函数/方法注释 (10) 5.4变量/属性注释 (11) 6排版规则 (11) 6.1文件结构 (11) 6.2缩进 (11) 6.3分号 (11) 6.4空格 (12) 6.5行排版 (12) 6.6空行 (12) 6.7语句 (12) 6.7.1表达式语句 (12) 6.7.2复合语句 (13) 6.7.3 if-else语句 (13) 6.7.4 for语句 (13) 6.7.5 for-in语句 (13) 6.7.6 while语句 (13) 6.7.7 do-while语句 (13) 6.7.8 switch语句 (14) 6.7.9 try-catch-finally语句 (14) 7字符集编码规则 (14)
8编码健壮性遵循原则 (14) 8.1合理使用闭包 (14) 8.2合理使用for和for-in循环 (15) 8.3避免无限循环 (16) 8.4区分===和== (16) 8.5禁止使用with(){} (16) 8.6字符串拼接 (16) 8.7避免在函数中定义全局变量 (17) 8.8避免在JavaScript中包含过多的HTML、CSS内容 (17) 8.9异常处理 (17) 9安全 (18) 9.1 JSON串的安全过滤 (18) 9.2 JavaScript脚本攻击 (18) 9.3 Cookie泄露 (18) 9.4防止js代码泄露 (18) 10性能优化 (18) 10.1合理使用prototype (18) 10.2本地缓存对象属性 (18) 10.3减少操作HTML DOM结构的次数 (19) 10.4引用JavaScript文件 (19) 10.5事件代理 (19) 11第三方框架引入规范 (19) 12安全性要求 (19) 13附录 (19) 13.1一致性约束 (19) 13.2保留字 (20) 13.3 JSON格式 (21) 13.4常用类型值举例 (22) 13.5数据处理建议 (23) 13.5.1数据处理控件 (23) 13.5.2数据格式与处理 (23) 13.5.3缓存使用 (23)
课程设计报告正文书写要求 1.《课程设计报告书》的正文内容要求和格式如下: 一级标题:三号宋体加粗 二级标题:四号宋体加粗 正文内容:小四宋体 图、表号:5号宋体 一、报告书格式 1、标题如上一行,格式同上;内容格式同上; 2、内容为对题目的分析,及如何使用现有技术解决,分析过程有针对性有实际内容者为 佳; 3、如有多项,请使用1.2.…作为小标题;如果还有子项,请使用1)、2)、…作为小标 题; 二、个人总结 1、标题如上一行,格式同上;内容格式同上; 2、对你整个课程课设过程的体会和总结,不要太简单,按照自己实际完成情况的进行阐 述,要求半页以上。 三、 1.参考文献至少5个 2.《课程设计报告书》完成后。装订请严格按照装订顺序,左侧装订。 3.《课程设计报告书》杜绝雷同或抄袭,一旦发现,全部不及格,切记!切记!
潍坊科技学院 JavaScript课程设计 报告书 设计题目基于javascript的电子商务网站开发 专业班级 学生姓名 学号 指导教师 日期2012.12.24~2013.1.11 成绩
课程设计任务书 院系:专业:班级:学号: 一、课程设计时间 2012年12月24日至2013年1月11日,共计3周。 二、课程设计内容 使用html+javascript+css 完成以下任务: 1、能够熟练使用css结合html实现网页布局。 2、熟练使用文档对象模型和事件驱动,能够很好的实现web表单的交互式操作。 3、熟练使用javascrip中的对象,实现网页的动态效果。 三、课程设计要求 1. 课程设计质量: ?贯彻事件驱动的程序设计思想,熟练使用javascript中的对象,实现网页特效。 ?网页设计布局合理,色彩搭配合理,网页操作方便。 ?设计过程中充分考虑浏览器兼容等问题,并做适当处理。 ?代码应适当缩进,并给出必要的注释,以增强程序的可读性。 2. 课程设计说明书: 课程结束后,上交课程设计报告书和相关的网页。课程设计报告书的格式和内容参见提供的模板。 四、指导教师和学生签字 指导教师:学生签名: 五、教师评语:
JavaScript文件 JavaScript程序应独立保存在后缀名为.js的文件中。 JavaScript代码不应该被包含在HTML文件中,除非这是段特定只属于此部分的代码。在HTML中的JavaScript代码会明显增加文件大小,而且也不能对其进行缓存和压缩。 filename.js>应尽量放到body的后面。这样可以减少因为载入script而造成其他页面内容载入也被延迟的问题。也没有必要使用language或者type属性。MIME类型是由服务器而非scripttag来决定的。 缩进 缩进的单位为四个空格。避免使用Tab键来缩进(即使现在已经是21世纪了),也始终没有个统一的Tab长短标准。虽然使用空格会增加文件的大小,但在局域网中几乎可以忽略,且在最小化过程中也可被消除掉。 每行长度 避免每行超过80个字符。当一条语句一行写不下时,请考虑折行。在运算符号,最好是逗号后换行。在运算符后换行可以减少因为复制粘贴产生的错误被分号掩盖的几率。下一行应该缩进8个空格。 注释 不要吝啬注释。给以后需要理解你的代码的人们(或许就是你自己)留下信息是非常有用的。注释应该和它们所注释的代码一样是书写良好且清晰明了。偶尔的小幽默就更不错了。记得要避免冗长或者情绪化。 及时地更新注释也很重要。错误的注释会让程序更加难以阅读和理解。 让注释有意义。重点在解释那些不容易立即明白的逻辑上。不要把读者的时间浪费在阅读类似于: i = 0; //让i等于0使用单行注释。块注释用于注释正式文档和无用代码。 单行注释的符号是“//”,多行注释以"/*"开始,以"*/"结束。 变量声明 所有的变量必须在使用前进行声明。JavaScript并不强制必须这么做,但是这么做可以让程序易于阅读,且也容易发现那些没声明的变量(它们会被编译成全局变量)。
这是一篇JavaScript编程代码规,它由Sun公司的文档Code Conventions for the Java Programming Language激发而来。 由于JavaScript is not Java,这篇规和Java规相比有很大改动。 代码质量在软件质量中占很大比例。在软件生命周期里,一个程序会被许多人接手。如果一个程序可以很好的表达自己的结构和特性,则在 不久的将来修改它时就会减少程序崩溃的可能。 代码规可以帮助减少程序的脆弱性。 https://www.wendangku.net/doc/ed2222903.html, 我们所有的JavaScript代码都直接发布给公众,它应该具有发布质量。 https://www.wendangku.net/doc/ed2222903.html, Neatness counts. 目录: JavaScript文件 缩进 行宽 注释 变量声明 方法声明 命名 语句 - 简单语句 - 复合语句 - 标签 - return语句 - if语句
- for语句 - while语句 - do语句 - switch语句 - try语句 - continue语句 - with语句 空格 额外的建议 - {}和[] - 逗号操作符 - 块作用域 - 赋值表达式 - ===和!==操作符 - 令人混淆的加和减 - 邪恶的eval https://www.wendangku.net/doc/ed2222903.html, JavaScript文件 JavaScript程序应该作为一个.js文件存储和发布。 JavaScript代码不应该嵌入在HTML文件里,除非那些代码是一个单独的会话特有的。HTML 里的JavaScript代码大大增加了页面的大小,并且 很难通过缓存和压缩来缓解。 网页教学网