Start Javascript!!

정종찬·2022년 4월 18일
1

javascript를 실행하는 2가지 방법이 있다.

  1. html 파일에서
<body>
  <script>
   	//내용입력
  </script>
</body>
  1. js파일을 불러오는 방법
<body>
  <script src="index.js"></script>
</body>

html 파일에서 직접 자바스크립트 코드를 작성하게 되면 HTML이 만들어질 때 같이 컴파일이 되고 메모리 할당도 같이 돼서 한 번에 처리하는데 시간이 오래 걸린다. 따로 파일을 불러오면 한 번에 컴파일해서 페이지를 보여주고 순차적 자바스크립트 코드가 실행된다. 그래서 프로젝트가 커지면 따로 가져오는 게 좋다.

변수란 값을 저장하는 공간. 즉, 자료를 저장할 수 있는 이름이 주어진 기억장소라 칭할 수 있다.
따라서 팀프로젝트 시 누구나 이해 가능한 변수명을 설정해주는것이 중요하다.

var varName; // 가장 오래된 버전에서 사용하는 변수 타입
let letName; // 지역변수 스코프{}내 에서 적용되는 변수
const // 값이 수정될 일이 없는 변수

변수명 이름 규칙

  1. 알파벳, __(언더바), -(하이픈), 숫자 사용가능
    (한글, 특수문자, 일본어 등 다 가능하지만 권장하지않음)
    ※ 숫자가 변수명 제일 앞에 올수 없다.

  2. camel 표기법 - 첫 단어은 소문자, 이후 단어 처음은 대문자로 한다.
    let myVeryCarmelCase; //캐멀캐이스
    let MyVeryPascarCase; // 파스칼캐이스
    let my_snake_case; // 스네이크캐이스

  3. 대소문자를 구분한다. 아래 두개의 변수는 다른 변수이다.
    let myVeryLongLongName;
    let MyVeryLongLongName;

JavaScript에서 호이스팅(hoisting)이란, 인터프리터가 변수와 함수의 메모리 공간을 선언 전에 미리 할당하는 것을 의미합니다. var 로 선언한 변수의 경우 호이스팅 시 undefined 로 변수를 초기화합니다.

전역변수 : 영역밖에서 전체적으로 적용되는 변수
지역변수 : 스코프{}안에서 적용되는 변수

var // 가장 오래된 버전에서 사용되는 변수타입

console.log(varName);		// varName 을 할당, 값은 X 컴파일시 undefined 로 출력 
var varName = 'ㄱㄱ';		   // varName 에 ㄱㄱ로 값을 입력
console.log(varName);		// 컴파일시 ㄱㄱ 로 출력

if (true)
{   
    // 다른 영역
    var varName = 'gogo';	// varName에 gogo로 값을 입력
}
console.log(varName);		// 컴파일시 gogo 로 출력

같은 변수이름으로 선언하여 사용할 수 있어서 문제가 발생할 수 있음
다른 영역내에서 사용해도 전역변수로 적용되어 영역밖에서까지 적용됨

let // 지역변수 스코프{}}내 에서 적용되는 변수

let letName = 'jjch'
console.log(letName);		// letName 에 jjch 로 할당 jjch로 출력

if (true) 
{   // 지역변수 스코프{}}내 에서 적용되는 변수
    let letName = 'ㄱㄱ2';
    console.log(letName);
}

// let letName = 'rhrhrh' 같은변수명 사용 불가 // 컴파일 에러 
console.log(letName);		// ㄱㄱ2가 아닌 jjch로 출력

중복 사용할수 있으나 전역변수가 아닌 지역변수로 사용하여 구분지을수 있음

const // 값이 수정될 일이 없는 변수, 선언과 초기화를 해줘야한다.

const constName = "jch";    
// 게임 1스테이지 맵의 크기 10x10
// 1스테이지 보스 이름 
// document 를 변수로 선언할 때
constName /* = 'ㄱㄱ3'; */ // Assignment to constant variable. // 런타임 에러
console.log(constName);

CTRT+K+C 주석처리
CTRT+K+U 주석해제
ALT+SHIFT+A 부분주석

숫자

진수별 숫자 표현
10진수 = 255 (255)
2진수 = 1111 1111 (0b 1111 1111) 128 64 32 8 4 2 1(2의 0승)
128+64+32+8+4+2+1
8진수 = 377 (0o377) 512 64 8 1(8의 0승)
64X3 8X7 1X7
16진수 = ff (0xff) 256 16 1(16의 0승)
16X15 1X15

 let num = 255;
 console.log(num.toString(2));
 console.log(num.toString(8));
 console.log(num.toString(16));

Math 함수

Math.random() // 0.0 ~ 1.0 사이의 랜덤한 값(난수)
Math.floor(randomNum) // 내림
Math.ceil(randomNum)  // 올림
Math.round(randomNum) // 반올림

실습.

프로그램이 3 ~ 10 사이의 랜덤한 값을 지정한다. (3 4 5 6 7 8 9 10)
값을 하나 입력받아서 정답인지 아닌지 출력해준다.

let randomNum = Math.floor((Math.random() * 7) + 3) // 3.0 ~ 10.0 사이의 랜덤한 값(난수) // *10 해서 랜덤한 정수값 구하게 한다.
console.log(randomNum);
let randomNumPrompt = prompt("정답을 입력하세요", "3~10");
let num3 = Math.floor(randomNumPrompt);

if(num3 == randomNum){
  alert('정답');    
}
else {
  alert('땡');
};

풀이

let correctNum = Math.floor((Math.random() * 10)) % 8 + 3; // 3 + 0 ~ 3 + 7 
let inputNum = prompt("정답을 입력하세요", 10)
console.log(correctNum);
if (inputNum == correctNum)
{
  alert("정답입니다.");
}
else {
  alert("틀렸습니다.")
}
profile
dalssenger

0개의 댓글

관련 채용 정보