Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Naming/formatting standard for global variables

What is both the naming and formatting standard for global variables in JavaScript?

For example:

var global_var // ?
var _global_var // ?
var GLOBAL_VAR // ?
var _GLOBAL_VAR // ?
...

Note: I am NOT talking about constants, just simply variables that have global scope.

like image 951
StaceyI Avatar asked Nov 10 '10 15:11

StaceyI


2 Answers

There are no standards as such. The most common practice is to use lower camel case (e.g. var fooBarBaz;) for all variables and property names, irrespective of scope, but this is by no means universal. The only exception is to capitalize the name of a function that is intended to be used as a constructor:

function SomeClass() {}

var someClassObj = new SomeClass();

I've also seen block capitals and underscores used for variables that the author considers constants, or alternatively for all global variables:

var EARTH_RADIUS = 6378100;

Another reasonably common convention (although not one I use myself) is to prefix properties of objects that author wishes to be considered private with an underscore:

this._leaveThisAlone = "Magical property";

Douglas Crockford published his own take on JavaScript code standards several years ago that covers most of this, but as ever this is just one man's opinion, so take with a pinch of salt.

like image 140
Tim Down Avatar answered Oct 21 '22 06:10

Tim Down


The requisite comment about rethinking the design if you're needing to use global variables, blah blah...

The global variables I've seen are normally prefixed with g or gbl. Sometimes this is modified with an underscore: _g, _gbl. IIRC, the underscores were used when 'global' was confined to some scope and not 'truly' global.

If you are going to use a global variable in a fashion where EVERYTHING shouldn't be able to use the variable, I'd go with using the underscore. In javascript (IIRC) the convention of using an underscore as a prefix implies that the variable is 'private' or shouldn't be used externally. If you are, alternately, declaring it in a fashion that everyone should be able to access and modify then I'd go with just the prefix and no underscore.

like image 29
QuinnG Avatar answered Oct 21 '22 04:10

QuinnG