97 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
			
		
		
	
	
			97 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
---
 | 
						||
id: 56533eb9ac21ba0edf2244bf
 | 
						||
title: Local Scope and Functions
 | 
						||
challengeType: 1
 | 
						||
videoUrl: ''
 | 
						||
localeTitle: 本地范围和功能
 | 
						||
---
 | 
						||
 | 
						||
## Description
 | 
						||
<section id="description">在函数内声明的变量,以及函数参数都具有<dfn>局部</dfn>范围。这意味着,它们仅在该功能中可见。这是一个函数<code>myTest</code>带有一个名为<code>loc</code>的局部变量。 <blockquote> function myTest(){ <br> var loc =“foo”; <br>的console.log(LOC); <br> } <br> MYTEST(); //记录“foo” <br>的console.log(LOC); // loc未定义</blockquote> <code>loc</code>未在函数外定义。 </section>
 | 
						||
 | 
						||
## Instructions
 | 
						||
<section id="instructions">在<code>myLocalScope</code>声明一个局部变量<code>myVar</code> 。运行测试,然后按照编辑器中注释的说明进行操作。 <strong>暗示</strong> <br>如果您遇到问题,刷新页面可能会有所帮助。 </section>
 | 
						||
 | 
						||
## Tests
 | 
						||
<section id='tests'>
 | 
						||
 | 
						||
```yml
 | 
						||
tests:
 | 
						||
  - text: 没有全局<code>myVar</code>变量
 | 
						||
    testString: 'assert(typeof myVar === "undefined", "No global <code>myVar</code> variable");'
 | 
						||
  - text: 添加本地<code>myVar</code>变量
 | 
						||
    testString: 'assert(/var\s+myVar/.test(code), "Add a local <code>myVar</code> variable");'
 | 
						||
 | 
						||
```
 | 
						||
 | 
						||
</section>
 | 
						||
 | 
						||
## Challenge Seed
 | 
						||
<section id='challengeSeed'>
 | 
						||
 | 
						||
<div id='js-seed'>
 | 
						||
 | 
						||
```js
 | 
						||
function myLocalScope() {
 | 
						||
  'use strict'; // you shouldn't need to edit this line
 | 
						||
 | 
						||
  console.log(myVar);
 | 
						||
}
 | 
						||
myLocalScope();
 | 
						||
 | 
						||
// Run and check the console
 | 
						||
// myVar is not defined outside of myLocalScope
 | 
						||
console.log(myVar);
 | 
						||
 | 
						||
// Now remove the console log line to pass the test
 | 
						||
 | 
						||
```
 | 
						||
 | 
						||
</div>
 | 
						||
 | 
						||
### Before Test
 | 
						||
<div id='js-setup'>
 | 
						||
 | 
						||
```js
 | 
						||
var logOutput = "";
 | 
						||
var originalConsole = console
 | 
						||
function capture() {
 | 
						||
  var nativeLog = console.log;
 | 
						||
  console.log = function (message) {
 | 
						||
    logOutput = message;
 | 
						||
    if(nativeLog.apply) {
 | 
						||
      nativeLog.apply(originalConsole, arguments);
 | 
						||
    } else {
 | 
						||
      var nativeMsg = Array.prototype.slice.apply(arguments).join(' ');
 | 
						||
      nativeLog(nativeMsg);
 | 
						||
    }
 | 
						||
  };
 | 
						||
}
 | 
						||
 | 
						||
function uncapture() {
 | 
						||
  console.log = originalConsole.log;
 | 
						||
}
 | 
						||
 | 
						||
```
 | 
						||
 | 
						||
</div>
 | 
						||
 | 
						||
### After Test
 | 
						||
<div id='js-teardown'>
 | 
						||
 | 
						||
```js
 | 
						||
console.info('after the test');
 | 
						||
```
 | 
						||
 | 
						||
</div>
 | 
						||
 | 
						||
</section>
 | 
						||
 | 
						||
## Solution
 | 
						||
<section id='solution'>
 | 
						||
 | 
						||
```js
 | 
						||
// solution required
 | 
						||
```
 | 
						||
</section>
 |