javascript를 실행하는 2가지 방법이 있다.
<body>
<script>
//내용입력
</script>
</body>
<body>
<script src="index.js"></script>
</body>
html 파일에서 직접 자바스크립트 코드를 작성하게 되면 HTML이 만들어질 때 같이 컴파일이 되고 메모리 할당도 같이 돼서 한 번에 처리하는데 시간이 오래 걸린다. 따로 파일을 불러오면 한 번에 컴파일해서 페이지를 보여주고 순차적 자바스크립트 코드가 실행된다. 그래서 프로젝트가 커지면 따로 가져오는 게 좋다.
변수란 값을 저장하는 공간. 즉, 자료를 저장할 수 있는 이름이 주어진 기억장소라 칭할 수 있다.
따라서 팀프로젝트 시 누구나 이해 가능한 변수명을 설정해주는것이 중요하다.
var varName; // 가장 오래된 버전에서 사용하는 변수 타입
let letName; // 지역변수 스코프{}내 에서 적용되는 변수
const // 값이 수정될 일이 없는 변수
변수명 이름 규칙
알파벳, __(언더바), -(하이픈), 숫자 사용가능
(한글, 특수문자, 일본어 등 다 가능하지만 권장하지않음)
※ 숫자가 변수명 제일 앞에 올수 없다.
camel 표기법 - 첫 단어은 소문자, 이후 단어 처음은 대문자로 한다.
let myVeryCarmelCase; //캐멀캐이스
let MyVeryPascarCase; // 파스칼캐이스
let my_snake_case; // 스네이크캐이스
대소문자를 구분한다. 아래 두개의 변수는 다른 변수이다.
let myVeryLongLongName;
let MyVeryLongLongName;
JavaScript에서 호이스팅(hoisting)이란, 인터프리터가 변수와 함수의 메모리 공간을 선언 전에 미리 할당하는 것을 의미합니다. var 로 선언한 변수의 경우 호이스팅 시 undefined 로 변수를 초기화합니다.
전역변수 : 영역밖에서 전체적으로 적용되는 변수
지역변수 : 스코프{}안에서 적용되는 변수
console.log(varName); // varName 을 할당, 값은 X 컴파일시 undefined 로 출력
var varName = 'ㄱㄱ'; // varName 에 ㄱㄱ로 값을 입력
console.log(varName); // 컴파일시 ㄱㄱ 로 출력
if (true)
{
// 다른 영역
var varName = 'gogo'; // varName에 gogo로 값을 입력
}
console.log(varName); // 컴파일시 gogo 로 출력
같은 변수이름으로 선언하여 사용할 수 있어서 문제가 발생할 수 있음
다른 영역내에서 사용해도 전역변수로 적용되어 영역밖에서까지 적용됨
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 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("틀렸습니다.")
}