1
00:00:00,270 --> 00:00:05,310
이 비디오에서는 자바 스크립트에서 범위라는 개념을 논의 할 것입니다.

2
00:00:05,310 --> 00:00:09,640
범위는 일부 코드가 실행되는 컨텍스트를 나타냅니다.

3
00:00:09,900 --> 00:00:14,610
그래서 우리가 코드를 가지고있는 곳이라면 Say hello라는 함수 안에 있다고합시다.

4
00:00:15,210 --> 00:00:18,550
이 코드는 특정 상황에서 실행됩니다.

5
00:00:18,720 --> 00:00:27,620
따라서 변수가있을 수 있으며 속성이있을 수 있으며 범위는 해당 함수에서 볼 수있는 변수 및 속성을 나타냅니다.

6
00:00:27,750 --> 00:00:33,290
그리고 그것은 다른 함수 내부에서 또는 다른 함수 내부에 중첩 된 함수가있을 수 있습니다.

7
00:00:33,360 --> 00:00:34,740
당신이 할 수있는 일이 있습니다.

8
00:00:34,950 --> 00:00:39,070
우리는 다른 범위를 가질 수도 있고 다른 변수가 보일 수도 있습니다.

9
00:00:39,150 --> 00:00:41,490
그래서 몇 가지 예를 들자면 이것이 맞는 것입니다.

10
00:00:41,490 --> 00:00:47,950
이것은 분명히 어렵고 복잡한 주제이지만, 당신을 위해 그것을 단순화하기 위해 최선을 다할 것입니다.

11
00:00:48,660 --> 00:00:50,880
여기서 간단한 것을 시작해 봅시다.

12
00:00:50,880 --> 00:01:09,390
Declare function Math 그리고 우리가 할 수학 연산은 변수 x를 40이라고 선언하면 그 로그 X를 취소 할 것입니다.

13
00:01:09,690 --> 00:01:15,970
그러니 수학을 해보고 40 점을 얻으세요.

14
00:01:16,320 --> 00:01:22,720
이 범위에서이 함수의 내부에서 x를 40이라고합니다.

15
00:01:22,740 --> 00:01:28,760
그러나 X에서 액세스하려고하면 함수 외부에서 어떤 일이 발생할 것으로 예상됩니까?

16
00:01:29,760 --> 00:01:32,810
x가 정의되지 않았다는 오류가 발생합니다.

17
00:01:32,880 --> 00:01:38,650
이것이 우리에게 보여 주듯이이 함수 내부에 두 개의 서로 다른 범위가 있다는 것은 하나의 컨텍스트라는 것입니다.

18
00:01:38,760 --> 00:01:46,200
X는 여기에 정의되어 있지만 외부에는 정의되어 있지 않으며 우리는 전역 범위라고 부르는 것을 우리는 어떤 함수에도 포함되어 있지 않습니다.

19
00:01:46,350 --> 00:01:49,900
X를 입력하면 X가 무엇인지 모르기 때문에 오류가 발생합니다.

20
00:01:49,920 --> 00:01:52,840
이 범위에는 표시되지 않습니다.

21
00:01:53,010 --> 00:02:01,200
그래서 우리가 x에 대해 x를 정의한다면, 이것을 그냥 낮추라고합시다.

22
00:02:01,260 --> 00:02:07,020
이제 전역 범위에서이 함수 밖에있을 때 X에 액세스하면됩니다.

23
00:02:07,030 --> 00:02:07,810
안녕하세요.

24
00:02:08,160 --> 00:02:10,450
그래서이 문맥에서 X는 안녕하세요.

25
00:02:10,770 --> 00:02:17,200
그러나 만약 내가 다시 수학을한다면 이번에는 어떤 일이 일어날 지 기대하고 있습니다.

26
00:02:17,400 --> 00:02:21,180
이 맥락에서 여전히 40입니다.

27
00:02:21,180 --> 00:02:22,490
그래서 그것은 정말로 중요합니다.

28
00:02:22,800 --> 00:02:27,250
함수를 만들 때 자체 범위를 변수 자체의 집합으로 갖습니다.

29
00:02:27,510 --> 00:02:33,770
그렇다고 함수 대신에 함수 밖에서 정의 된 변수에 액세스 할 수는 없다는 것을 의미하지는 않습니다.

30
00:02:33,960 --> 00:02:35,290
그래서 예제를 보여 드리겠습니다.

31
00:02:35,520 --> 00:02:43,700
여기서 모든 것을 지우 겠고 이번에 변수 Y 변수를 사용합시다. y는 9 9와 같습니다.

32
00:02:44,280 --> 00:02:47,510
따라서 전역 범위에서 y에 액세스 할 수 있습니다.

33
00:02:47,610 --> 00:02:58,260
이제 함수를 선언하면 그 로그를 취소하고 싶다면 더 많은 계산을 해보 죠.

34
00:02:58,260 --> 00:03:01,220
왜 당신은 오류가 있다고 생각합니까?

35
00:03:01,500 --> 00:03:03,360
또는이 작업은 정상적으로 진행됩니다.

36
00:03:04,230 --> 00:03:08,480
괄호로 수학을 더 해보 죠.

37
00:03:08,850 --> 00:03:10,420
그리고 그것은 나에게 99를 준다.

38
00:03:10,830 --> 00:03:19,520
그래서 이것이 우리에게 보여 주는 것은 우리가 함수 밖에서 무언가를 정의 할 때 그 함수 안에 여전히 접근 할 수 있다는 것입니다.

39
00:03:19,530 --> 00:03:21,780
이것을 아동 범위라고 생각하십시오.

40
00:03:21,900 --> 00:03:30,200
이것은 더 깊은 레벨로 드릴 다운하는 것이 더 구체적이며, 하위 범위는 상위 범위에서 찾을 수있는 항목에 액세스 할 수 있습니다.

41
00:03:30,300 --> 00:03:32,900
그래서 그 유추가 도움이된다면 그걸로 나아갈 수 있습니다.

42
00:03:33,090 --> 00:03:38,980
그러나 기본적으로 함수 밖에서 변수를 정의하면 함수 내부에서 사용할 수 있습니다.

43
00:03:39,210 --> 00:03:41,840
그러나 그 반대는 사실이 아닙니다.

44
00:03:43,020 --> 00:03:44,390
여기에 또 다른 예가 있습니다.

45
00:03:44,460 --> 00:03:50,290
더 많은 수학을 할 때 y의 값을 실제로 바꾸면 어떨까요?

46
00:03:50,370 --> 00:03:56,260
그래서 나는 왜 그것이 100과 같다고 말합니다.

47
00:03:56,550 --> 00:03:58,200
그런 다음 y를 인쇄합니다.

48
00:03:58,710 --> 00:04:02,090
이 경우에 어떻게 생각하십니까?

49
00:04:02,330 --> 00:04:03,260
그것은 시도입니다.

50
00:04:03,510 --> 00:04:05,060
이제 y가 지금 무엇인지 살펴 보겠습니다.

51
00:04:05,070 --> 00:04:06,130
아흔 아홉구나.

52
00:04:06,430 --> 00:04:14,910
그리고 더 많은 수학을한다면 100을 프린트합니다.

53
00:04:14,910 --> 00:04:19,080
따라서 함수 y 내부는 100이고 100을 출력합니다.

54
00:04:19,080 --> 00:04:21,370
하지만 기능 밖에서는 어떻습니까?

55
00:04:21,720 --> 00:04:23,960
방금 Y를 입력하면 어떻게됩니까?

56
00:04:24,210 --> 00:04:26,160
그것은 또한 100입니다.

57
00:04:26,610 --> 00:04:33,930
그래서 여기서 일어난 일은 제가 글로벌 범위의 기능 외부에서 '99로 먼저 선언 한 것입니다.

58
00:04:34,380 --> 00:04:37,820
그리고 함수 안에서 y를 바꿨습니다.

59
00:04:37,980 --> 00:04:47,670
그래서 이것은 여기에 선언 된 이전 변수를 실제로 발견하고 그것을 변경 한 범위에서 새로운 변수 y를 선언하지 않았습니다.

60
00:04:47,670 --> 00:04:49,770
그래서 여기에.

61
00:04:49,770 --> 00:04:54,280
왜 백과 밖 모두 100입니다.

62
00:04:54,300 --> 00:04:57,140
여기에 또 하나의 예가 있습니다.

63
00:04:57,420 --> 00:05:07,380
변수 문구를 거기에서 높이 평가 한 다음 함수가 무언가를하도록합시다.

64
00:05:07,380 --> 00:05:16,720
나는이 이름들이 끔찍하게 창의적이지 않고 변화를 시도하기 위해 무언가를하는 대신에 알고 있습니다.

65
00:05:17,010 --> 00:05:23,350
나는 새로운 VAR 구를 작별 인사와 같게 만들 예정입니다.

66
00:05:24,270 --> 00:05:30,520
그리고 나서 다음 줄에 그것을 인쇄 할 것입니다.

67
00:05:30,570 --> 00:05:33,730
그러면 여기서 어떻게 될 것으로 예상됩니까?

68
00:05:34,830 --> 00:05:42,100
우리가 뭔가를하면 그걸 작별 인사 해.

69
00:05:42,120 --> 00:05:47,570
그래서 우리에게 알려주는 것은 A가 무언가를하는 대신에 작별과 같습니다.

70
00:05:47,880 --> 00:05:52,190
그러나 그것과 동등한 어구는 아직도 거기에서 높습니다.

71
00:05:52,500 --> 00:05:56,290
따라서 여기에 var phrase를 추가하여 작별 인사와 동일하게 만듭니다.

72
00:05:56,430 --> 00:06:00,780
이는 우리가 여기서 정의한 변수를 사용하지 않고 새로운 변수로 만듭니다.

73
00:06:00,780 --> 00:06:08,190
그것은 새로운 문구 변수를이 스코프에만 존재하게 만듭니다. 그 안에는 무언가가 작별 인사가됩니다.
