- 1、本文档共4页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
2015年 12条专业的JavaScript规则免责声明:下面的内容为了简洁说的有些绝对,是的,在编程中所有的“规则”都有例外。学习JavaScript是困难的。它发展的如此之快,以至于在任何一个特定的时刻,你都不清楚自己是否“做错了”。有些时候,感觉像是坏的部分超过了好的部分。然而,讨论这些并没有意义,JavaScript正在征服世界,所以,我们也只能这么做了。下面是我的一些建议:1. JS应该放到 .js文件中“额,只有那么几行而已…”,是的,我的意思是所有的 JS 都应该放在.js文件中。为什么呢?因为这有助于可读性,节省带宽。行内 JavaScript 在每次页面加载时都会重新下载,相反的,单独的.js文件则会被缓存起来。正如你所看到的,这个规则有助于支持如下一长串的其他规则。这就是为什么它的规则# 1。2. JS 应该是静态的我看到过很多程序员喜欢动态的使用JavaScript。他们喜欢像使用服务器端语言如C#, Ruby, Java那样来动态的使用JavaScript。千万不要这么做。你失去了代码着色、语法高亮显示和智能感知的支持。记住,JavaScript 应该属于一个.js文件(见规则 #1)。然而,使用JSON引入动态行为。我把这称为JavaScript配置对象模式。具体方法如下:把JSON注入到你应用程序的头部,并根据业务逻辑的需要利用这些数据。你可能会想:“嘿,这违背了规则 #1”。我把 JSON 看作是数据,而不是代码,所以我破例,为了支持静态的、单独的JavaScript文件。StackOverflow使用的这种模式,Google 也是。你可以看下他们的代码:正如你看到的,StackOverflow注入了一些个人的设置,如?isNoticesTabEnabled。这个简单的JSON代码片段为你使用静态JavaScript文件自定义行为提供了必要的数据支持。为了实现这一点,需要序列号服务器端类为JSON,然后放置在head中。然后你可以在静态的JavaScript文件中根据需要参考这个数据结构,能够使用它,是因为它被注入到head中。3. JS 应该被压缩压缩可以减小文件体积,从而提升页面加载速度。记住,性能也是一项功能。因为,为了压缩,你需要把 JS 放到一个单独的文件中(见规则 #1)。压缩JS曾经很麻烦,但现在完全是简单自动化的。有一打的方式可以做到,而Gulp 和?gulp-uglify?是一种低摩擦和自动化的办法。4. JS 应该位于页面底部如果你把?script标签放在head中,它会阻碍页面渲染。位于head中的脚本必须在页面显示前加载,因此把script放在底部的 /body 前面可以先显示页面,而不用等 JS 文件下载完毕。这有助于提升感知性能。如果你的JavaSctipe必须位于head中,可以考虑使用jQuery的?$(document).ready这样你的脚本可以等到 DOM 加载完毕后再执行。5. JS 应该实时的LintedLinting遵循代码风格、发现错别字、有助于避免错误。有很多这样的工具,我建议使用?ESLint。你可以使用 Gulp 的?gulp-eslint来运行它。Gulp 可以查看你所有的 JS 文件,并在你每次保存的时候运行 linter。另外,你需要把你的 JS 代码放在单独的 .js文件中才能运行 linter 。6.?JS应该有自动化测试在过去的几年中,我们知道了测试的重要性。但它在很大程度上忽略了在JavaScript,直到最近才被重视。现在典型的JavaScript应用需要测试的部分远比你实际手动测试到的要多。使用JavaScript处理这么多的逻辑,关键的是具有自动测试。您可以通过工具,如Selenium?自动化集成测试。然而,集成测试往往是脆弱的,所以我建议专注于自动化单元测试。自动化单元测试有多种选择。如果你是新手,我建议你使用Jasmine,而如果你想要终极配置,可以使用Mocha with Chai。7. JS 需要封装前些年我们了解了全局变量的风险,值得庆幸的是,现在有很多的方法来封装JS:Immediately Invoked Function Expressions (aka IIFE)Revealing ModulesAMD (typically via RequireJS)CommonJS (used by Node.js, use in browser via Browserify or Webpack)ES6 modulesES6模块是未来。好消息是,虽然在浏览器中还不能很好的支持,但你可以用?Babel?来使用它。如果你不想?transpile,?CommonJS可能是你最佳的选择。由于 Node 使用的?CommonJS
您可能关注的文档
- 我thhtfh.doc
- 2004年全国中学生英语能力竞赛样题.doc
- top 10 美国流行英语词汇.doc
- 牛津高二-01.doc
- 电机行业术语中英文对照.doc
- 高考英语不用死记硬背的背单词方法.doc
- 华师一附中九年级英语综合测评(四).doc
- 十分钟使用ionic Framework开发一个跨平台移动应用.docx
- 高考临场应试技巧大全.doc
- 西安芯学苑讲解web前端知识体系.docx
- 2024高考物理一轮复习规范演练7共点力的平衡含解析新人教版.doc
- 高中语文第5课苏轼词两首学案3新人教版必修4.doc
- 2024_2025学年高中英语课时分层作业9Unit3LifeinthefutureSectionⅢⅣ含解析新人教版必修5.doc
- 2024_2025学年新教材高中英语模块素养检测含解析译林版必修第一册.doc
- 2024_2025学年新教材高中英语单元综合检测5含解析外研版选择性必修第一册.doc
- 2024高考政治一轮复习第1单元生活与消费第三课多彩的消费练习含解析新人教版必修1.doc
- 2024_2025学年新教材高中英语WELCOMEUNITSectionⅡReadingandThi.doc
- 2024_2025学年高中历史专题九当今世界政治格局的多极化趋势测评含解析人民版必修1.docx
- 2024高考生物一轮复习第9单元生物与环境第29讲生态系统的结构和功能教案.docx
- 2024_2025学年新教材高中英语UNIT5LANGUAGESAROUNDTHEWORLDSect.doc
文档评论(0)