Web 技术研究所

我一直坚信着,Web 将会成为未来应用程序的主流

全局变量?全局常量?

  所有的编程指导中都反对使用全局变量,我之前也写过一篇喷「全局变量」的文章。但是仔细想想好像我们根本没弄清全局变量是什么!由于以前的 JavaScript 中并没有常量的概念,导致了在 JavaScript 世界中「全局变量」被外延到了整个「全局」的概念上。
  不要使用「全局」,才不管你是变量还是常量还是类还是其他什么东西呢!这便是大多数 JavaScript 开发者脑子深层的思想。
  「全局变量」确实是万恶的!一个全局的东西居然会变!?那不确定因素就太高了。但是我并不反对全局常量。如果一个东西是恒久不变的,定义到全局又何妨?如果真的是害怕命名冲突,那就自己造一套命名空间来解决。就像 jQuery 那样,实际上它有很多全局常量,只不过被放到了 jQuery 这个命名空间下了而已。
  下面的代码就可以让你看到 jQuery 的全局变量们 <script src="https://code.jquery.com/jquery-1.10.2.min.js"></script> <style> html { white-space: pre; font: 12px/1.75 monospace; } </style> <script> document.write(JSON.stringify(Object.keys(jQuery), null, 2)); </script>   如果是 Web 开发,我们应该早就习惯了全局常量。最典型的就是 CSS!在 Scoped Style 或 Shadow DOM 之类的东西出现之前,所有 CSS 都是全局的。虽然我也一直在喷 CSS 缺个作用域、缺个命名空间,但是似乎即使没有这些,我们的程序也跑得好好的,也很少因为 CSS 命名冲突造成难以解决的问题。那么既然 CSS 的全局常量可以接受,为何就不能接受 JavaScript 的全局常量呢?
网名:
34.203.213.*
电子邮箱:
仅用于接收通知
提交 悄悄的告诉你,Ctrl+Enter 可以提交哦
神奇海螺
[查看全部主题]
各类Web技术问题讨论区
发起新主题
本模块采用即时聊天邮件通知的模式
让钛合金F5成为历史吧!
次碳酸钴的技术博客,文章原创,转载请保留原文链接 ^_^