知识卡片

声明暴露依赖

普通读书笔记卡 · 1500.a.1

内容

JSLint 要求变量和函数使用前必须显式声明,以探测隐式全局变量、暴露拼写错误;文件依赖的外部全局变量可用 /*global name1, name2 */ 注释列出,让工具知道是有意依赖而非遗漏声明,这份清单本身就是依赖关系的显式文档。关联:[[隐式全局难调试]];发散:依赖清单也是给人看的架构文档,把隐含约定变成可审查记录。

参考来源

- 位置:《JavaScript语言精粹(修订版)》附录C《JSLint》"未定义的变量和函数"一节 - 结论依据:原文说明"JSLint期望所有的变量和函数在使用或调用前都已被声明。这样它就可以探测隐式的全局变量。这也是一种良好的编码实践,因为它使得程序更容易阅读",并给出用 `/*global ...*/` 注释显式列出依赖的外部全局变量的做法,据此推出显式声明能让依赖关系可见、错误更早暴露的结论。 - 原始内容:JSLint期望所有的变量和函数在使用或调用前都已被声明。这样它就可以探测隐式的全局变量。这也是一种良好的编码实践,因为它使得程序更容易阅读……全局声明注释可以用来列出所有你明确用做全局变量的名字。JSLint可以用此信息去辨别拼写错误和被遗忘的var声明。