JavaScript初学者福利!必须收藏的24条小技巧.docVIP

  • 0
  • 0
  • 约6.97千字
  • 约 13页
  • 2017-12-21 发布于河南
  • 举报

JavaScript初学者福利!必须收藏的24条小技巧.doc

JavaScript初学者福利!必须收藏的24条小技巧

JavaScript初学者福利!必须收藏的24条小技巧 前端小编发布于 2013-12-15 22:52 查看数: 1989 评论数: 4 帖子模式 这篇文章将回顾JavaScript的知识 !如果你看完了下面的内容,请务必让我们知道你掌握的小技巧! 1.使用 === 代替 == JavaScript 使用2种不同的等值运算符:===|!== 和 ==|!=,在比较操作中使用前者是最佳实践。“如果两边的操作数具有相同的类型和值,===返回true,!==返回false。”——《JavaScript:语言精粹》然而,当使用==和!=时,你可能会遇到类型不同的情况,这种情况下,操作数的类型会被强制转换成一样的再做比较,这可能不是你想要的结果。 2.Eval=邪恶 起初不太熟悉时,“eval”让我们能够访问JavaScript的编译器(译注:这看起来很强大)。从本质上讲,我们可以将字符串传递给eval作为参数,而执行它。这不仅大幅降低脚本的性能(译注:JIT编译器无法预知字符串内容,而无法预编译和优化),而且这也会带来巨大的安全风险,因为这样付给要执行的文本太高的权限,避而远之。 3.省略未必省事 从技术上讲,你可以省略大多数花括号和分号。大多数浏览器都能正确理解下面的代码: if(someVariableExists) x = false 复制代码 然后,如果像下面这样: if(someVariableExists) x = false anotherFunctionCall(); 复制代码 有人可能会认为上面的代码等价于下面这样: if(someVariableExists) { x = false; anotherFunctionCall(); } 复制代码 不幸的是,这种理解是错误的。实际上的意思如下: if(someVariableExists) { x = false; } anotherFunctionCall(); 复制代码 你可能注意到了,上面的缩进容易给人花括号的假象。无可非议,这是一种可怕的实践,应不惜一切代价避免。仅有一种情况下,即只有一行的时候,花括号是可以省略的,但这点是饱受争议的。 if(2 + 2 === 4) return nicely done; 复制代码 未雨绸缪 很可能,有一天你需要在if语句块中添加更多的语句。这样的话,你必须重写这段代码。底线——省略是雷区。 4.使用JSLint JSLint是由大名鼎鼎的道格拉斯(Douglas Crockford)编写的调试器。简单的将你的代码粘贴进JSLint中,它会迅速找出代码中明显的问题和错误。“JSLint扫面输入的源代码。如果发现一个问题,它返回一条描述问题和一个代码中的所在位置的消息。问题并不一定是语法错误,尽管通常是这样。JSLint还会查看一些编码风格和程序结构问题。这并不能保证你的程序是正确的。它只是提供了另一双帮助发现问题的眼睛。”——JSLing 文档部署脚本之前,运行JSLint,只是为了确保你没有做出任何愚蠢的错误。 5.将脚本放在页面的底部 在本系列前面的文章里已经提到过这个技巧,我粘贴信息在这里。 javascriptButton.png (24.5 KB, 下载次数: 6) 下载附件 保存到相册 2013-12-15 22:06 上传 记住——首要目标是让页面尽可能快的呈献给用户,脚本的夹在是阻塞的,脚本加载并执行完之前,浏览器不能继续渲染下面的内容。因此,用户将被迫等待更长时间。如果你的js只是用来增强效果——例如,按钮的单击事件——马上将脚本放在body结束之前。这绝对是最佳实践。 建议 And now you know my favorite kinds of corn. 复制代码 6.避免在For语句内声明变量 当执行冗长的for语句时,要保持语句块的尽量简洁,例如: 糟糕 for(var i = 0; i someArray.length; i++) { var container = document.getElementById(container); container.innerHtml += my number: + i; console.log(i); } 复制代码 注意每次循环都要计算数组的长度,并且每次都要遍历dom查询“container”元素——效率严重地下! 建议 var container = document.getElementById(container); for(var i = 0, len = s

文档评论(0)

1亿VIP精品文档

相关文档