Web Front-end 공부/Java script17 [JavaScript] function scope & block scope 아래의 예시에서는 var를 사용해 global이라는 변수를 선언했다. 우리가 예상했던건, if문안에서 var를 사용해 global을 선언해주면 if문 안에서만 global이 '지역'으로 뜨고 if 문 밖에서는 원래대로 global이 '전역'으로 뜨는 것이었다. 하지만 if문 밖에서도 global은 '지역'으로 바뀌고 말았다. var global = '전역' if(global==='전역'){ var global = '지역' console.log(global); // 지역 } console.log(global) // 지역 왜 전역공간에 있는 스코프까지 오염이 되어버렸을까? 바로 if문을 사용했기 때문이다. var는 함수단위 스코프인데, if문은 함수가 아니다. 블록단위 스코프로 바꾸지 않는 이상 계속 이런 .. 2023. 3. 10. [JavaScript] Var대신 let/const를 써야하는 이유 var는 함수 스코프, let&const는 블록단위 스코프를 가진다. 그리고 블록스코프는 Temporal Dead Zone 이라는 속성까지 가진다. 그래서 안전한 코드작성이 가능하다. var는 완전 동일한 변수명에 다른 값이 선언이 된다. 심지어 변수명과 값이 모두 일치해도 에러를 띄우지 않는다. 이런 상태에서는 심지어 console.log(name)으로 var name 선언보다 앞에 불러도 정상작동한다. var name = '이름' var name = '이름2' var name = '이름3' var name = '이름3' // 에러없이 작동한다 이렇게 작동하는게 편해보일 수도 있지만, 코드가 1000줄 이상 넘어간다고 생각해보자. 그럼 코드가 아주 복잡해 질 것이다. 이 변수를 let& const 으로.. 2023. 3. 10. Js 숫자야구게임 만들기 야구의 스트라이크, 볼, 아웃의 원리를 가져온 게임 상대편이 1~9중에서 중복되지 않는 숫자 4개를 고른다. 10번의 기회가 주어지고 상대편이 고른 숫자 네 개를 맞추면 된다. 이 때 숫자의 순서까지 맞아야 한다. 맞힌 숫자의 개수(볼), 숫자뿐만 아니라 순서까지 맞힌 개수(스트라이크)를 알려준다. 반복문을 연습할 수 있다. #순서도 그리기 사용자가 무엇인가를 입력하는 형식은 그 형식이 맞는지를 먼저 검사해줘야 한다. ex. 숫자 4자리 입력인데, 3자리만 했다던가, 글자를 입력했다던가 식의 형식에 어긋나는 것들은 에러를 띄워줘야한다. 1. 시작 -> 숫자 4개 뽑는다. -> 사용자가 입력할 때 까지 대기 2. 사용자가 답을 제출 -> 답이 형식에 맞는 지 검사한다 ->yes : 홈런인지 검사한다./ N.. 2022. 5. 30. Js 계산기 #순서도 작성하기 우리가 계산기를 만들 때는 세세한 부분까지 다 신경을 써서 만들어야 한다. 우리가 100을 입력한다면 단순히 100이란 숫자만 생각할 것이 아니라, 1 , 0 , 0 을 따로 눌러서 입력을 하는 것이고 이게 합쳐져서 100을 만든다고 생각해야된다. 첫번재 숫자를 입력하고 연산자를 누른 뒤에, 두번째 숫자를 안 누르고 그냥 바로 =을 누르게 되면 오류가 날 것 까지 생각해야 한다. 한 계산을 마무리하고 다음 계산을 연달아 계산할때는 어떻게 처리해야 할 지도 생각해야된다. 시작 숫자를 입력한다 연산자를 입력한다 숫자를 입력한다 계산한다 결과를 표시한다 끝 간단하게 생각한 위 순서도를 코드를 짤 때는 어떻게 구체적으로 짜야되는 지 생각하면서 구체화한다 1-1. 시작 -> 숫자 1을 저장할 변.. 2022. 5. 27. 이전 1 2 3 4 5 다음