place inside of <body>...</body> for using external script file
<script src="main.js"></script>
or
<script src="./main.js"></script>
만약 defer라는 속성을 추가하게 되면 무조건 문서를 다 가져온 후에 스크립트 소스를 실행하도록 지정하기도 한다.
<head>
<title>change page background</title>
<link rel="stylesheet" href="css/main.css">
<script defer src="js/changeBG.js">..</script>
</head>
=======================================
입력값 출력을 담당하는 몇가지 함수들
alert()
confirm()
prompt()
console.log()
document.write()



prompt("질문","default") 형식으로 기본적으로 default 값을 넣어 놓을 수 있다.

또한 입력 창에 입력을 하면 입력된 값이 console에 뜨게 된다.


=======================================
1. let <var name>
2. const <var name>
3. var <var name> --> 잘 권하지는 않는 것으로 알고 있다....만 어쨋든 알고 있으면 좋으니까
let은 변수를 선언 후 변수의 값을 바꿀 수 있지만
const는 변수의 값을 처음 지정한 후에는 값을 바꿀 수 없다는 것이 가장 큰 차이점이다.
EcmaScript2015이전에는 var예약어를 썼었다.
var을 사용할 때는 호이스팅에 조심해야 한다. 호이스팅은 '끌어올린다' 라는 뜻인데 상황에 따라 변수의 선언 부분을 스코프의 가장 위쪽으로 끌어올린다는 것이다.
실제로 끌어올리는 것이 아니라 엔진이 해석을 할 때 소스를 이런 식으러 해석을 한다는 의미이다.
ex code
var x = 10; var sum = x + y; var y = 20; console.log(sum) // result => NaN
NaN이 뜨는 이유는 자바스크립트 해석기가 코드를 한 줄식 해석을 해나가면서 y의 값을 선언만 하고 값을 할당하지 않았다고 생각해서 일어나는 문제이다.
실제로 해석기는 다음처럼 해석을 한다.
var x = 10; var y; var sum = x + y; y = 20; console.log(sum)
y를 선언만 하고 값을 할당하지 않았다고 해석기가 생각하기 때문이다.
let이나 const는 이러한 문제가 나타나지 않는다.
web console view

node.js view

아 참고로 var은 let처럼 변수를 재할당이 가능하다.
=======================================
usage of typedef()
typeof는 주어진 자료의 자료형을 나타낼 때 이용할 수 있다.

escape letter -> using when
\ddd -> octat num
\xddd -> hex num
\d -> int num
\\ -> back slash
\' -> '
\" -> "
\` -> `
\b -> back space
\t -> tab
\f -> form feed letter
\n -> line feed
\r -> carrage return letter
더 많은 정보는 직접 찾아보도록
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Regular_expressions/Literal_character
=======================================
using with backtic
like
let name = "653o";
console.log(`WELCOME ${name} \n good to see you!!`);

this can be changed like this
let name = "653o";
console.log(`WELCOME ${name}
good to see you!!`);

=======================================

it can be devide only truth or false,
but in general value also admitting like truthy or falsy
falsy value in general variable
0 // zero num NaN "" // empty string undefined null0and the others are truthy
undefined // not allocated -> can't define this is empty or valid value...or etc
null // no value or invalid value...literally none
null !== undefined
user can allocate null
let age = null;
prompt("what is you age?",age);
=======================================
class can be defined like below
let class={
key1 : value1,
key2 : value2,
key3 : value3,
...
key??: value??
}
this also look like
let class = {key1 : value1, key2 : value2, key3 : value3, ..., key??: value??}
let book = {key1 : "value1", key2 : "value2", key3 : 3333};
console.log(book.key1);
console.log(book["key3"]);

emptyarr=[]
colors=["red","blue","black"]
arr=[10,"hehe",true,undefined,null]
이젠 설명하기도 귀찮다 예시나 보셈ㅇㅇ
let arr = [1,2,3,4,"a",true,"653o"];
console.log(arr[0]);
console.log(arr[1]);
console.log(arr[5]);
console.log(arr[6]);
arr.length; // length로 배열의 길이를 알 수 있다....

오늘은 여기까지.......앞으로도 열심히 해야지.....