1104306499614658
Zara Code Short
  • 2016.3.17 16:57
  • 조회수 307
  • 답변수 3
1104306499614658
Zara Code Short
  • 2016.3.17 16:57
  • 조회수 307
  • 답변수 3

자꾸 에러가 납니다...

크롬 콘솔도구에서 아래 구문을 실행시

var cost = [ 85, 42, 37, 10, 22, 8, 15 ];
var total_cost = 0;

for (i=0; i<cost.length; i++) {
total_cost += cost[i];
}

console.log(total_cost);

219 콘솔 로그가 나옵니다.

해당 예제파일에서 실행시 자꾸만 에러가 나오는데 왜그런걸까요??

forTest
var cost = [ 85, 42, 37, 10, 22, 8, 15 ];
var total_cost = 0;

for (i=0; i<cost.length; i++) {
    total_cost += cost[i];
}

console.log(total_cost);
  • #자바스크립트 입문
  • #for문 - 실습

3 답변

  • G3rlasealonpd5c2kica
    Demi
    • 2016.3.17 17:02

    var를 쓰지 않는 암시적 선언은 사용하지 않는 것이 좋기 때문에 암시적 선언을 쓰면 에러가 발생하게끔 설정해놓았습니다.

    for문 안에
    (i=0; i<cost.length; i++)
    (var i=0; i<cost.length; i++) 로 바꿔주세요.

    관련 자료:
    한글 - https://msdn.microsoft.com/ko-kr/library/z16cackw(v=vs.94).aspx
    영문 - http://www.w3schools.com/js/js_strict.asp

  • Img profile default
    한인규
    • 2016.3.17 17:05

    변수 i를 처음 선언할 때는 var를 붙여줘야합니다.

    for (i=0 ...

    for (var i = 0..
    이렇게 말이죠.

    var를 선언안하면 전역변수로 인식이 되기에 크롬 도구에선 동작할 겁니다.
    하지만 var를 항상 붙여주는것이 좋으며, 안 붙일 시 오류가 날 여지가 많습니다.

    실제로 "use strict"; 를 선언하면 요즘엔 var 없이 변수 생성이 안됩니다.

    • 아 자꾸만 var 를 선언 안했네요;;; 저번에도 글코.... ㅠㅠ 또다시 깨우칩니다... 역시 닝겐이라 어쩔수 없는것인가;;; 나도 알파고가 되고 싶구나....-Zara Code Short
      2016.3.17 17:08
  • Dbucdlkpqyn7yg1hgsny
    이확영
    • 2016.3.17 17:08

    아래와 같이 for loop의 변수 i 앞에 var를 붙이면 정상적으로 실행됩니다. strict mode로 실행되기 때문에 var를 사용하여 변수를 선언하지 않으면 오류가 발생하는 것입니다.

    var cost = [ 85, 42, 37, 10, 22, 8, 15 ];
    var total_cost = 0;
    
    for (var i = 0; i < cost.length; i++) {
        total_cost += cost[i];
    }
    
    console.log(total_cost);
    

    • Strict Mode 를 이해할때 가령 예를 들면 html 에서도 버전에 따라서는 Strict Mode 를 사용 하잖아요 그와 같은 개념으로써 엄격히 규제 한다그래서 var 를 꼭 붙혀줘야 한다.. 뭐 이런뜻으로 받아 들여도 될런지요?-Zara Code Short
      2016.3.17 17:15
    • 네 맞아요!. 명시적으로 strict mode를 사용하실려면 맨 위에 "use strict"; 이걸 붙여주면 strict mode가 됩니다.-한인규
      2016.3.17 17:27
    • 소중한 정보 감사합니다 확실히 배워 갑니다~! -Zara Code Short
      2016.3.17 17:41

답변 쓰기

이 입력폼은 마크다운 문법을 지원합니다. 마크다운 가이드 를 참고하세요.