JavaScript是一种广泛用于客户端Web开发的脚本语言,常用来给HTML网页添加动态功能,下面介绍九个JavaScript开发的经验,供大家参考。

  JavaScript是一种广泛用于客户端Web开发的脚本语言,常用来给HTML网页添加动态功能,下面介绍九个JavaScript开发的经验,供大家参考。

  1、使用正确的

  但是在源代码中,以下这种标签写法随处可见:

  

  在 HTML 中,language 属性已经过时,因为具有 type 属性后,language 它是冗余的。不要再这样写了。

  事实上,客户端默认为将 JavaScript 代码指定 type=”text/javascript” 属性,除非需要 type=”application/x-javascript” 这样的类型,否则完全没有必要写 type 属性。关于 JavaScript MIME 类型,这里有一篇参考文档:http://krijnhoetmer.nl/stuff/javascript/mime-types/

  2、将代码放置于外部文件

  使用外部 .js 文档比在 html 文档里直接写 JavaScript 代码要简洁一些,同时也使得 JS 文件可以被缓存,保证网站资源的快速访问。

  将你的 JavaScript 代码置于一个 .js 文档中,然后在 html 文档中使用

  3、避免使用 HTML 注释包裹代码

  90 年代一些非常古老的浏览器无法执行 JavaScript 代码。为了防止这些浏览器出现不必要的结果。在 1994 年至 1997 年间,在 HTML 中使用注释包裹 JavaScript 代码是良好的兼容方案,以保证不支持 JavaScript 的浏览器能够忽略它。

  这里是一个简单案例:

  

  然而在 2010 年,所有的浏览器(甚至是可爱的 IE 6)都能解释 JavaScript 代码,因此绝对没有使用注释包裹 JS 代码的必要了。更糟的是,如果代码被 HTML 注释包裹,并且使用了 — 符号,浏览器可能会误以为 HTML 文档已经结束。

  4、使用框架

  除非你的 JavaScript 代码很短或者很简单,你应该通过框架来避免过多代码上的重复劳动。在我看来,jQuery 是最好的,有一个很棒的社区,所以值得尝试。

  芒果语:其实 YUI 也很棒,系统、强大、完善、稳妥。更有牛逼叉叉的 Loader 机制,更高效地提高 Web 应用的性能。

  5、使用 var 关键字声明变量

  你应当使用 var 语句来声明变量,否则变量会存在于全局作用域内,并且使用 var 使得代码可读易懂。

  比如下面的案例:

  var name = "Jean"; var size = data.length;

  之前在 JavaScript 中的对象引用机制 的评论中也有涉及变量作用域的问题。

  6、保持代码的分离

  几年前,当一个程序员想要为一个 HTML 元素添加事件时(比如说,你想要在用户输入时验证时间信息),他会使用特殊的属性把 JavaScript 代码放置于 html 中,比如 onblur、onchange,onclick 等等。比如:

  虽然照样可行,但却很不简洁。HTML 应当只包含文档的结构层面,就如同使用内联 CSS 是不好的做法一样,内联 JavaScript 同样不可取。

  取而代之,下面的代码如何?使用 jQuery 也很简单:

  $(document).ready(function(){ $('input[name=date]').bind('change', validateDate); });

  7、在文档底部包含脚本文件

  不久以前,在 和 标签之间插入脚本文件一度成为最佳实践。但浏览器是顺序解析文档,并动态加载外部文件的。这就意味着在页面头部插入脚本会在安排在页面内容之前加载。

  为了在内容就绪之后再加载脚本,JavaScript 文件应该在文档底部被包含。就像下面这样:

  

  8、使用 JSLint

  JSLint 是一款用于 JavaScript 源代码检查的应用程序。如果它发现 JS 中存在某些问题,就会返回相关的问题描述信息和大概的解决方案。

  JSLint 能有效发现代码中的缺陷,或者说代码风格上值得改进之处。这个站点是 JavaScript 开发绝对值得收藏的。

  9、不要轻易使用 document.write

  陈旧的 document.write 方法已经被不赞成使用了好些年,然而这仍然是一贯使用的方法。

  document.write("hello world");

  应当使用 DOM 的 innerHTML 属性在页面中插入文本。

  document.getElementById('hello').innerHTML = 'hello world';

转载于:https://www.cnblogs.com/mount/archive/2011/11/08/2241734.html

分享JavaScript开发实战经验相关推荐

  1. 好程序员Web前端教程分享JavaScript开发技巧

    好程序员Web前端教程分享JavaScript开发技巧,相信知道Web前端的小伙伴都熟悉,Javascript的很多扩展的特性是的它变得更加的犀利,同时也给予程序员机会创建更漂亮并且更让用户喜欢的网站 ...

  2. 【在线专家问答】 - WEB性能测试专家 唐勇 与您分享《性能测试实战经验》

    [在线专家问答] - WEB性能测试专家 唐勇 与您分享<性能测试实战经验> http://www.automationqa.com/uchome/space.php?uid=1& ...

  3. 移动端H5页面编辑器开发实战--经验技巧篇

    一.前言 在上一篇<原理结构篇>中,主要针对移动端网页进行了分类描述,并介绍了H5编辑器的需求.原理以及框架结构,本文将延续开发实战这一主题,针对策略和开发技巧做进一步的介绍. 二.策略篇 ...

  4. 超全 泛微 E9 Ecology 9开发资料大全 开源资源下载 泛微E9二次开发 泛微开发实战经验 泛微开发实战例子 泛微二次开发项目例子 泛微二次开发Demo 泛微二次开发完整例子 泛微二次开发入门

            由于工作需要,E9在泛微一推出来,以前所在的企业就第一时间上线了,经过四年多的运行,功能强大再加上在上面开发非常多的业务,一般的企业员工只需要打开泛微就可以处理完平时信息化的业务.后来 ...

  5. 普元微服务架构封闭式开发实战经验

    微服务(Microservice)架构目前受欢迎的程度已无需赘述.CSDN之前的文章解释了微服务是如何演变的,又为什么重要?然而微服务架构的迁移不可能一帆风顺,也会面临很多挑战,CSDN将通过已经投入 ...

  6. 分享十条Java后端开发实战经验,干货满满!

  7. [干货教程]仿网易云课堂微信小程序开发实战经验

    本篇文章想跟大家分享下:我们公司"湖北诚万兴科技"最近刚帮客户定制开发.目前已上线的"哎咆课堂"微信小程序的开发经验分享.首先大概介绍下这个小程序所涉及到的主要 ...

  8. 鼎捷ERP二次开发教程 Tiptop GP开发资料大全 Tipto开发实战经验 鼎捷开发实战例子 Tiptop GP二次开发项目例子 4GL开发Demo 鼎捷二次开发完整例子 鼎捷ERP二次开发入门

    本人在ERP实施公司做顾问四五年,参与企业实施ERP十多个项目,非常熟悉企业ERP流程,在实施过程遇到众多问题,提出了不少根据企业具体情况的解决方案. 曾经参与鼎捷Tiptop GP实施十多个项目,具 ...

  9. RabbitMQ实战经验分享

    RabbitMQ实战经验分享 原文:RabbitMQ实战经验分享 前言 最近在忙一个高考项目,看着系统顺利完成了这次高考,终于可以松口气了.看到那些即将参加高考的学生,也想起当年高三的自己. 下面分享 ...

最新文章

  1. 预测|十张图带你了解2018年机器人行业趋势与前景
  2. linux 远程访问
  3. mvc ajax教程,MVC3----AJAX辅助方法
  4. gluPerspective和gluLookAt的关系
  5. Python列表的用法和基本操作
  6. 中国诗歌艺术8诗的魅惑:中国诗歌的几个基本元素之不循常规的语序
  7. 几行代码撸了一天,源码到底该如何读?
  8. mysql 中时间和日期函数应用
  9. html跑马灯效果代码加速,网页特效_跑马灯特效代码大全一
  10. InfoGAN(Interpretable representation learning by information maximizing GAN)
  11. 微信扫码支付开发流程
  12. 抖音初始权重快速提升3大攻略,新人必看丨国仁网络资讯
  13. error C2048 :int main()无法重载/已存在主体
  14. 工业机器人导轨 百度文库_工业机器人复习资料
  15. Win7操作系统:请求的操作需要提升
  16. 网站建设:网站安全检测工具
  17. 有才而性缓,有智而气和
  18. TCP/IP五层模型介绍
  19. 很好的网站,你懂的,不喜勿喷
  20. Choco-slover的使用

热门文章

  1. 30%企业定位平台型,不会出现类似BAT巨头
  2. 无线路由器的配置实例
  3. Android中加载事件的方式
  4. 【LeetCode】TreeNode类实现解析(java实现)
  5. Discrete Logging hunnu10590 pku2417 fzu 1352 hit 1928 zoj 1898
  6. 《财富》:盖茨的四项黄金法则
  7. TRUNCATE TABLE和PURGE_TABLE的区别
  8. Connection to node -1 (Desktop/192.168.0.102:9091) could not be established.
  9. flink-jdbc-driver和flink-sql-gateway的作用
  10. 读写分离的适用场景(转载)