2021-02-06 04:42:36 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								---
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								id: 56533eb9ac21ba0edf2244bf
							 
						 
					
						
							
								
									
										
										
										
											2021-03-07 09:15:14 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								title: Ámbito local y funciones
							 
						 
					
						
							
								
									
										
										
										
											2021-02-06 04:42:36 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								challengeType: 1
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								videoUrl: 'https://scrimba.com/c/cd62NhM'
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								forumTopicId: 18227
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								dashedName: local-scope-and-functions
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								---
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# --description--
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2021-03-07 09:15:14 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								Las variables que se declaran dentro de una función, así como los parámetros de la función tienen un ámbito < dfn > local< / dfn > . Esto significa que sólo son visibles dentro de esa función.
							 
						 
					
						
							
								
									
										
										
										
											2021-02-06 04:42:36 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2021-03-07 09:15:14 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								Esta es una función `myTest`  con una variable local llamada `loc` .
							 
						 
					
						
							
								
									
										
										
										
											2021-02-06 04:42:36 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								```js
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								function myTest() {
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  var loc = "foo";
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  console.log(loc);
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}
							 
						 
					
						
							
								
									
										
										
										
											2021-03-07 09:15:14 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								myTest();
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								console.log(loc);
							 
						 
					
						
							
								
									
										
										
										
											2021-02-06 04:42:36 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								```
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2021-03-07 09:15:14 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								La llamada a la función `myTest()`  mostrará la cadena `foo`  en la consola. La línea `console.log(loc)`  arrojará un error, ya que `loc`  no está definida fuera de la función.
							 
						 
					
						
							
								
									
										
										
										
											2021-02-06 04:42:36 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# --instructions--
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2021-03-07 09:15:14 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								El editor tiene dos `console.log` s para ayudarte a ver lo que está sucediendo. Revisa la consola a medida que programas para ver cómo cambia. Declara una variable local `myVar`  dentro de `myLocalScope`  y ejecuta las pruebas.
							 
						 
					
						
							
								
									
										
										
										
											2021-02-06 04:42:36 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2021-03-07 09:15:14 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								**Nota:** La consola todavía mostrará el error `ReferenceError: myVar is not defined` , pero esto no causará que las pruebas fallen.
							 
						 
					
						
							
								
									
										
										
										
											2021-02-06 04:42:36 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# --hints--
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2021-03-07 09:15:14 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								El código no debe contener una variable global `myVar` .
							 
						 
					
						
							
								
									
										
										
										
											2021-02-06 04:42:36 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								```js
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								function declared() {
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  myVar;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								assert.throws(declared, ReferenceError);
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								```
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2021-03-07 09:15:14 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								Debes agregar una variable local `myVar` .
							 
						 
					
						
							
								
									
										
										
										
											2021-02-06 04:42:36 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								```js
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								assert(
							 
						 
					
						
							
								
									
										
										
										
											2021-04-28 16:18:54 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  /functionmyLocalScope\(\)\{.*(var|let|const)myVar[\s\S]*}/.test(
							 
						 
					
						
							
								
									
										
										
										
											2021-02-06 04:42:36 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								    __helpers.removeWhiteSpace(code)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  )
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								);
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								```
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# --seed--
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								## --seed-contents--
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								```js
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								function myLocalScope() {
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  // Only change code below this line
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  console.log('inside myLocalScope', myVar);
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								myLocalScope();
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								// Run and check the console
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								// myVar is not defined outside of myLocalScope
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								console.log('outside myLocalScope', myVar);
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								```
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# --solutions--
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								```js
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								function myLocalScope() {
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  // Only change code below this line
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  var myVar;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  console.log('inside myLocalScope', myVar);
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								myLocalScope();
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								// Run and check the console
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								// myVar is not defined outside of myLocalScope
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								console.log('outside myLocalScope', myVar);
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								```