项目管理最佳实践方法_23条JavaScript初学者应知的最佳实践方法

f9448256567ee2a57849d24a1d563d28.png

作者:web前端开发

转发链接:https://mp.weixin.qq.com/s/VpCiBMZ5fMRNpKAASUpi7w

优先使用===,而不是==

JavaScript使用两种相等性操作符:===|!==和==|!=。通常认为做比较的最佳实践是使用前一组操作符。

“若两个操作数的类型和值相同,那么===比较的结果为真,!==比较的结果为假。”

— JavaScript语言精粹(JavaScript: The Good Parts)

然而,如果使用==和!=,当比较不同类型的操作数时,你就会碰到问题啦。在这种情况下,这组操作符会尝试对操作数的值做无用的强制转换。

Eval就是糟糕的代名词

对于那些不熟悉JavaScript的人来说,函数”evel”让我们能够访问JavaScript编译器。我们可以通过给”eval”传递一个字符串参数来得到该字符串执行的结果。

这不仅会极大地降低你的脚本的性能,也会造成一个巨大的安全隐患,因为这赋予传递进来的纯文本太多的能力。要尽可能地避免eval函数的使用。

不要懒手

技术上来说,你确实可能侥幸地省略多数花括号和分号。大多数浏览器都能够正确地解释如下代码片段:

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语句中增加更多的命令,那该怎么办呢?

没法子,你就只能重写这块代码了。处理这个问题的底线是对于省略写法保持谨慎。

使用JS Lint

JSLint是Douglas Crockford编写的一个调试器。简单地将你的脚本拷贝进去,它就会快速地扫描你的代码中任何明显的问题和错误。

“JSLint获取一份JavaScript源码,然后扫描代码。如果发现问题,就会返回一条信息描述这个问题以及这个问题在源码中的大致位置。问题虽然经常是语法错误,却不一定是。

JSLint也会查看一些风格习惯以及结构问题。它并不证明你的代码是否正确,只是提供另外的一双眼睛来帮助发现问题。”

—JSLint文档

在结束脚本代码的编写之前,对其执行一次JSLint,能够保证你不会犯一些愚蠢的错误。

将脚本置于页面的底部

这条技巧在本系列前面的文章中也推荐过。因为它在此处也非常合适(As it’s highly appropriate though),所以我将那段信息直接粘贴在这里。

记住—这条最佳实践的主要目标是尽可能快速地为用户加载页面。当加载一个脚本时,浏览器直到整个脚本文件全部加载完毕才能继续。

因此,用户必须等上更长的时间才能注意到任何的进度。

如果JS文件的目的仅仅是增加功能—例如,在点击某个按钮后—那么就将那些文件放在底部,body结束标签之前吧。这绝对是一个最佳实践。

更好的做法

And now you know my favorite kinds of corn.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值