There are a number of factors in resolving a named variable reference. Namespace References describes the named variable references that are resolved for specific situations.
Notes: 
In JMP 9 and later, a, :a, and ::a have the same meaning with the Names Default To Here mode turned off.
If the Names Default To Here mode is on, JMP looks for the variable in these locations:
Local namespace
Here namespace
If the Names Default To Here mode is off, JMP looks for the variable in these locations:
Local namespace
Here namespace
Global namespace
If the Names Default To Here mode is on, then JMP creates the variable in the Local namespace or in the Here namespace.
If the Names Default To Here mode is off, then JMP creates the variable in the Local namespace or in the Global namespace.
JMP looks for the variable in the encapsulating Context Box namespace contained in a New Window window.
JMP creates the variable in the encapsulating Context Box namespace contained in a New Window window.
Delete Symbols();
Local( {d1l1 = 12},
	local:f1f1 = Function( {fa1, fa2},
		{fl1 = 99},
		local:fa12 = fa1 + fa2;
		Local( {d2l1 = 56},
			local:l2l2 = 78;
			Show( fa12 );
			Show( fl1 );
			Try( Show( d1l1 ), Write( "\!n\!n***Error=" || Char( exception_msg ) || "\!n" ) );
			Show Symbols();
		);
		local:fa12;
	);
	f1f1( 2, 3 );
);
 
fa12 = 5;
fl1 = 99;
 
***Error={"Name Unresolved: d1l1"(1, 2, "d1l1", d1l1 /*###*/)}
 
 
// Local
 
d2l1 = 56;
l2l2 = 78;
 
// 2 Local
 
// Local
 
fa1 = 2;
fa12 = 5;
fa2 = 3;
fl1 = 99;
 
// 4 Local
 
// Local
 
d1l1 = 12;
 
// 1 Local
 
// Global
 
exception_msg = {"Name Unresolved: d1l1"(1, 2, "d1l1", d1l1/*###*/)};
 
 
// 1 Global
 
5

Help created on 9/19/2017